Struts2框架--学习笔记(上):

概述:

Struts2框架应用于javaee三层框架中的web层。是在Struts1和webwork基础上发张的一个全新的框架。

 

一、搭建一个最基本的struts2工程步骤:

1、导入基本的jar包依赖:

2、创建action:

首先:比较一下servlet和struts2的action的区别:

(1)每次访问servlet的时候,都会执行service方法。

写类继承httpServlet,重写里面的方法。并在web.xml文件配置servlet的访问路径。

(2)每次执行action,默认执行execute的方法。

 //action类
public class HelloAction {
	//每次访问action的时候,默认执行execute方法。
	public String execute(){
		return "success";
	}
}

3、配置action类的访问路径:

(1)创建struts2核心配置文件,核心配置文件名称和位置是固定的,位置必须在src下面,名称是struts.xml;

(2)在struts.xml引入dtd约束;

(3)Action配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- 以上为引入的dtd约束 -->
<struts>
	<!-- action的配置 -->
	<package name="HelloDemo" extends="struts-default" namespace="/">

		<!-- name:配置访问路径 -->
		<action name="hellotest" class="com.zwp.action.HelloAction" method="execute">
			<!-- 配置方法的返回值到页面 -->
			<result name="ok" type="dispatcher">/hello.jsp</result>
		</action>

	</package>
</struts>

4、在web.xml配置文件配置过滤器:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">
	<display-name>ssh-test</display-name>
	
	<!-- 配置struts2过滤器 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

5、访问路径:http://localhost:8080/ssh-test/hellotest

至此,一个最基本的struts2项目就已经搭建完毕。

二、Struts2的基本概念:

1、Struts2的基本执行流程:

2、structs2的过滤器在服务端启动的时候创建,创建的时候会执行init方法,init方法中主要加载配置文件,包含自己创建的配置文件和struts自带文件。

3、Struts2核心配置文件:

文件名称和位置固定;在配置文件中主要有三个标签package、action、result,以及标签里面的属性。

(1)package标签:

<package name="HelloDemo" extends="struts-default" namespace="/">

类似于代码包,区别不同的action,必须首先写package标签,在package里面才能配置action。

package标签属性:

①name:name属性值跟功能本身没有关系。

②extends:extends="struts-default",属性值是固定的,struts-default。写了这个属性之后,在package里面的类具有action功能。

③namespace:namespace属性值和action标签里面的name属性值构成访问路径。

(2)action标签:

<action name="hellotest" class="com.zwp.action.HelloAction" method="execute">

action标签配置action访问路径:

action标签属性:

①name:package标签的namespace属性值和action标签里面的name属性值构成访问路径。在package标签里面可以写多个action标签,但是action标签的属性值不能相同。

②class:action的全路径。

③method:在action里面默认执行的方法execute方法,如果想执行action里面的其他方法,使用method进行配置。

(3)result标签:

<result name="ok" type="dispatcher">/hello.jsp</result>

根据action的方法的返回值,配置到不同的路径里面。

result属性:

①name:和方法返回值一样。

②type(重点):配置如何到路径中(转发或者重定向)。

---type属性默认值是做转发操作,值是dispatcher。

---做重定向操作,值是redirect。

--上面两个值一般针对到页面中的配置,如果想要配置到其他的action:

--chain:转发到action,一般不用,存在缓存问题

--redirectAction:重定向到action。

猜你喜欢

转载自blog.csdn.net/a745233700/article/details/81170988
今日推荐