简介
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
前端控制器 屏蔽掉复杂性
必须导入的jar包
- struts2-core-2.5.10.jar struts2核心包
- ognl-3.1.12.jar 对象图导航语言
- log4j-api-2.7.jar 日志
- javassist-3.20.0-GA.jar 字节码解析工具
- freemarker-2.3.23.jar 模板引擎
- commons-lang3-3.4.jar lang包
- commons-io-2.4.jar io包
- commons-fileupload-1.3.2.jar 文件上传
- struts2-core-2.5.10.jar struts2核心包
- 不是必须的
struts2-convention-plugin-2.5.10.jar 注解
asm-5.1.jar
struts2-json-plugin-2.5.10.jar json
配置作为前端控制器的过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
创建Action
创建一个Action类(控制器)的三种方式:
1.POJO - Plain Ordinary Java Object
2.实现Action接口并重写execute方法
3.继承ActionSupport类重写execute方法
配置struts.xml
在src目录下的struts.xml
例子:
<struts>
<constant name="struts.action.extension" value="do" ></constant>
<package name="default" extends="struts-default" namespace="/">
<action name="hello" class="com.kygo.action.HelloAction" method="sayHello">
<result name="ok">/WEB-INF/jsp/hello.jsp</result>
<result name="failed">/WEB-INF/jsp/fail.jsp</result>
</action>
</package>
</struts>
注意
Struts 2.5开始要指定允许调用的方法否则通配符配置是存在隐患的
<allowed-methods></allowed-methods>
参数
获取请求参数的方式
1.定义属性(属性名和参数名保存一致)
2.通过对象来组织属性(表单参数要写成"对象.属性")
3.模型驱动(实现ModelDriven接口并实现getModel方法提供一个保存参数的模型对象)
绑定数据的方式: 定义相关的属性并提供getter方法
获取session
真的session
ServletActionContext
假的session(获得map对象)
ActionContext
SessionAware 接口注入