alias拦截器的使用
2016-08-24 16:39
323 查看
在SSH项目中,有时需要由一个Action跳转到另一个Action。有两种方式可以实现Action之间的跳转,一种是chain,另一种是redirectAction,这两种方式之间的区别是chain是在服务器上跳转,可以实现不同Action之间的数据共享;而redirectAction是在客户端进行跳转。
使用chain在不同的Action之间传递参数值,这个功能可以通过alias拦截器来实现。
定义第二个被被调用的Action:
当第一个Action返回input时,就会跳转到第二个Action,此时将第一个Action中的error_status、error_desc的值分别传递给第二个Action的status、desc,从而实现了参数值的传递。一定要注意进行参数值传递的变量一定要有getter()和setter()方法,否则传递过去的值就是null。
使用chain在不同的Action之间传递参数值,这个功能可以通过alias拦截器来实现。
1. 指定Filter类
在web.xml中设置下面的拦截器:<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>
2. 传递参数值
在struts.xml文件中,定义第一个被调用的Action:<action name="XXX" class="XXXAction"> <result name="success"></result> <result name="input" type="chain"> <param name="actionName">input_error</param> </result> </action>
定义第二个被被调用的Action:
<action name="input_error" class="inputErrorAction"> <param name="aliases">#{'error_status':'status','error_desc':'desc'}</param> </action>
当第一个Action返回input时,就会跳转到第二个Action,此时将第一个Action中的error_status、error_desc的值分别传递给第二个Action的status、desc,从而实现了参数值的传递。一定要注意进行参数值传递的变量一定要有getter()和setter()方法,否则传递过去的值就是null。
相关文章推荐
- [EmguCV|WinForm] 使用EmguCV內建直方圖工具繪製直方圖(Histogram)-直方圖(Histogram)系列 (1)
- Java学习片段
- 青春的我们
-  与 兼容性问题
- 有一个mainwindow.ui的界面类,有一个added.ui的界面类,如何将added.ui界面加入到另外一个界面呢?
- [置顶] 新浪云 上传图片
- 自定义view系列(3)--给自定义View添加点击事件
- JAVA序列化标准格式(XML、JSON)
- opengl es三角形例子
- 非常好用的List交集、并集
- Qt之模型/视图(自定义按钮)(重绘QStyleOptionButton)
- UVA11754 - Code Feat
- Oracle资料整理
- 这一次,我优化了37%的内存
- 日历--给input赋值
- JNI NDK开发Crash错误定位 调试
- python 安装wxPython
- EditText的输入要求
- matlab读入多张图片
- IOC