声明:并非原创
主要介绍三个组成部分Action、Result、Interceptor的原理和使用方法
1 Struts体系结构
工作机制:
2 Struts配置文件
web.xml struts.xml 等
3 Struts 常用配置解析
3.1>使用<include>标签重用配置文件
默认是struts.xml,但如果package、action、interceptors等配置比较多时,都放到一个struts.xml不太容易维护
假设有一个配置文件,文件名为newstruts.xml
Struts.xml引用newstruts.xml文件的代码如下
注意:
3.2>action配置
除了在struts.xml中配置别名,还可以通过请求参数来描述指定动作(并不需要在struts.xml中配置),格式如下:
http://localhost:8080/contextPath/actionName!method.action
action设置参数
struts2中可以通过<param>标签指定任意多个参数
当struts2在调用execute之前,param1和param2的值就已经是相应参数的值了,因此,在execute方法中可以直接使用param1和param2。
3.3> result配置
3.4>拦截器配置
3.5>包配置
3.6>Action配置
===============================================================
2013-3-10
提问:Struts2的Action并不带有任何Web容器相关的对象,Action中又如何与Web容器进行通信并获取Web容器的相关对象呢? 刚刚我们提到Struts2会为每个Http的请求建立一个执行环境和数据环境。其中,数据环境就成为了Action获取Web容器的基础。 所以,当Action需要获取Web容器的相关对象,需要通过数据环境来进行。
获得Web容器对象(repuest response session等)
最简单的方法:
使用org.apache.struts2.ServletActionContext类
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
