Struts2

Struts2

1.Struts2的概述

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
1.struts2是一个基于MVC设计模式的WEB层框架。
2.struts2的内核相对于struts1来讲已经发生巨大变化。

1-2.常见的wed层框架
1.struts2,
2.struts1,
3.webwork
4.springMVC

2.Struts2入门

2-1.下载Struts2的开发环境
http://struts.apache.org/
2-2.解压Struts2开发包

Struts2_第1张图片
2-3.创建wed项目,引入jar包
struts-biank可以找到jar的包
Struts2_第2张图片
2-4.创建一个JSP页面

<h1>Struts2的入门</h1>
<h3<ahref="${pageContrxt.request.contextPath}/hello.action">Struts2的入门</a></h3>

2-5.编写Action的类

/** * Struts2的入门的Action类 * @author jt * / public class HelloAction { public String execute(){ System.out.println("HelloAction执行了..."); retuen null; } } 

2-6.对Action进行配置
在src下创建(提供)名称叫做struts.xml的配置文件

2-7.改写Acton中的方法的返回值

public String execute(){
	System.out.println("HelloAction执行了。。。。");
	return "success";

2-8.改写struts.xml
Struts2_第3张图片
2-9.编写success.jsp

<body>
<h1>跳转成功页面!!!</h1>
</body>

2-10.Struts2的执行流程
当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中 执行一组拦截器(这组拦截器实现部分功能),执行目标Action,Action的返回值,进行页面跳转。

3.Struts2的常见配置

3-1.配置XML的提示
Struts2_第4张图片

3-2.加载顺序
1.default.properties
2.struts-default.xml
3.struts-plugin.xml
4.struts.xml
5.struts.properties
6.web.xml
注意:后配置的常量的值会覆盖先配置的常量的值。

3-3.package相关配置
1.package标签称为包,这个包与Java中的包的概念不一致。包为了更好管理action的配置。
2.package标签的属性
name :包的名称,只有在一个项目中不重名即可。
extends :继承哪个包,通常值为struts-default。
namespace :名称空间,与标签中的name属性共同决定访问路径。
3.名称空间有三种写法:
带名称的名称空间 :namespace=”/aaa”
跟名称空间 :namespance=”/”
默认名称空间 :namespace=””
4.abstract :抽象的,用于其他包的继承。

3-4.action相关配置
action标签配置Action类。
action标签的属性
name :与namespace共同决定访问路径
class :Action类的全路径
method :执行Action中的哪个方法的方法名,默认值execute
converter :用于设置类型转换器

3-5.Struts2的常量配置
在Struts2的框架中,提供了非常多的常量:(在default.properties)
1.struts.i18n.encoding=UTF-8,Struts2中所有的post请求的中文乱码不用处理。
2.struts.action.extension=action, Struts2请求的默认的扩展名。默认扩展名是.action或者什么都不写。
在Struts2中修改一些常量的值:
修改常量的值,可以有三个位置进行修正:
1.struts.xml中进行修改:

<!-- 配置Struts2的常量-->
<constant name="struts.action.extension" value="action"/>

2.struts.properties中进行修改:
struts.action.extension=action

3.web.xml中进行修改:

<!--修改常量-->
<init-param>
	<param-name>struts.action.extensin</param-name>
	<param-value>xyz</param-value>
</init-param>
</filter>

4.Action

4-1.Action类是POJO的类

public class ActionDemo1{

	public String execute(){
		System.out.printtln("ActionDemo1执行了....");
		return null;
	}
}

4-2.Action类实现一个Action的接口

public class ActionDemo2 implements Action{
	@Override
	public String execute() throws Exception
		System.out.println("ActionDemo2执行了...);
		return NONE;
	}
}

4-3.通过method设置

<!---配置Struts2的包 =========== -->
<package name="demo3" extends="struts-default" namespace="/">
	<actionname="userFind"classs="com.itheima.struts.demo3.UserAction" method="find"></action>
	<actionname="userUpdate"classs="com.itheima.struts.demo3.UserAction" method="update"></action>
	<actionname="userDelete"classs="com.itheima.struts.demo3.UserAction" method="delete"></action>
	<actionname="userSave"classs="com.itheima.struts.demo3.UserAction" method="save"></action>
	</package>

你可能感兴趣的:(Struts2)