struts2 ResultType为chain的使用
来源:互联网 发布:sql check约束表达式 编辑:程序博客网 时间:2024/05/16 12:20
本文系转载,原文地址:http://www.cnblogs.com/ningvsban/p/3735195.html
1)基本使用
名称为“chain”的ResultType,在struts-default.xml里的配置如下:
<result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
chain是一种特殊的视图结果,用来将Action执行完之后链接到另一个Action中继续执行,新的Action使用上一个Action的上下文(ActionContext),数据也会被传递。
这在实际开发中,也是经常用到的一种ResultType。比如我们在Servlet开发中,一个请求,被一个Servlet处理过后,不是直接产生相应,而是把这个请求传递到下一个Servlet继续处理,直到需要的多个Servlet处理完成后,才生成响应返回。同样的,在Struts2开发中,也会产生这样的需要,一个请求被一个Action处理过后,不是立即产生响应,而是传递到下一个Action中继续处理。那么这个时候,就需要使用chain这个ResultType了。
来示例一下,先看看第一个Action,就用HelloWorldAction吧,稍微简化一下,示例如下:
public class HelloWorldAction extends ActionSupport { private String account; private String password; private String submitFlag; public String execute() throws Exception { this.businessExecute(); return "toSecond"; } public void businessExecute(){ System.out.println("用户输入的参数为==="+"account="+account+",password="+password+",submitFlag="+submitFlag); } //属性对应的getter/setter方法,省略了 }
第二个Action,示例代码如下:
public class SecondAction extends ActionSupport { public String execute() throws Exception { System.out.println("现在SecondAction进行处理"); return "toWelcome"; } }
然后到struts.xml中,配置这两个Action,要注意第一个Action的配置,在配置“toSecond”这个result的时候,用的就是chain这个ResultType,示例如下:
<package name="helloworld" extends="struts-default"> <action name="helloworldAction" class="cn.javass.action.action.HelloWorldAction"> <result name="toSecond" type="chain"> <param name="actionName">secondAction</param> </result> <!--下面这样配置也可以 <result name="toSecond" type="chain">secondAction</result> --> </action> <action name="secondAction" class="cn.javass.action.action.SecondAction"> <result name="toWelcome">/s2impl/welcome.jsp</result> </action> </package>
2)备注
chain不能在result配置的时候传递参数,也就是说,不能类似于如下的配置:
<result name="toSecond" type="chain"> <param name="actionName">secondAction?account=5</param> </result>这种配置方式是不行的,因为这里要求配置的是要链接的Action的name,不能传递参数,那么,要传递参数怎么办呢?那就需要在Action里面使用ActionContext或者ServletActionContext了。
使用chian的方式,后面的Action会和前面的Action共用同一个ActionContext
名称为“chain”的ResultType在配置的时候,除了前面示例中的actionName外,还有一个参数,名称为“namespace”,表示被链接的Action所在包的命名空间,如果不设置,默认的即是当前的命名空间。配置示例如下:
<result name="toSecond" type="chain"> <param name="actionName">secondAction</param> <param name="namespace">其他Package的namespace</param> </result>
- struts2 ResultType为chain的使用
- chain类型的ResultType
- struts2的resultType
- struts2的resultType类型
- struts2-resultType
- struts2的result为chain的跳转问题(参数设置)
- Struts2的ResultType和Action处理链
- Struts2的ResultType和Action处理链
- Struts2的ResultType和Action处理链
- Struts2的ResultType和Action处理链
- Struts2的ResultType和Action处理链
- Struts2的ResultType和Action处理链
- Struts2的ResultType和Action处理链
- Struts2的ResultType和Action处理链
- Strut2.1.8.1 resultType Chain
- struts2 convention result 使用chain
- struts2小心使用chain跳转
- struts2中action之间使用chain传值的探索
- javascript对this的理解
- BitmapFactory压缩图片
- linux及C++书籍推荐
- C#中HttpWebRequest的GetRequestStream执行的效率太低,甚至偶尔死掉
- 指針的檢測
- struts2 ResultType为chain的使用
- HDU 1253 胜利大逃亡 【BFS】
- hook模板x86/x64通用版(4)--CHook.cpp说明
- spring ApplicationContextAware的那些事儿
- 怎样学习才能拥有所谓“高并发”的经验?
- 116. Populating Next Right Pointers in Each Node && 117. II
- iOS命名规范
- leetcode104题 题解 翻译 C语言版 Python版
- 4269: 再见Xor 高斯消元求线性基