chain类型的ResultType

来源:互联网 发布:中原地产成交数据 编辑:程序博客网 时间:2024/04/30 04:28

“chain”是一种特殊的视图结果,用来将Action执行完之后的结果链接到一个Action继续执行,新的Aciton使用上一个Action的上下文(ActionContext),数据也会被传递。

在Struts 2开发中,一个请求配一个Action处理货后,不是立即产生相应,而是传递到下一个Action中继续处理。

有一个登陆页面,处理的action为HelloWorldAction,有account,password的input控件。

HelloWorldAction

public class HelloWorldActin extends ActionSupport{private String account;private String password;public String execute() throws Exception {this.doAction();return "toSecond";}public void doAction(){system.out.println("The input is===account:"+account+",password:"+password);}// getter/setter
第二个Action

public class SecondAction extends ActionSupport{pubilc String execute() throws Exception{System.out.println("Now is  SecondAction processing");return "toWelcome";}}
struts.xml配置如下

<package name="helloworld" extends="struts-default"><action name="helloworldAction" class="test.action.HelloWorldAction"><result name="toSecond" type="chain"><param name="actionName">secondAction</param></result></action><action name="secondAction" class=""test.action.SecondAction"><result name="toWelcome">/welcome.jsp</result></action></package>

welcome.jsp页面可以获取account,password的值。


tips:

1,chain不能再result配置的时候传参数。下面的错误

<result name="toSecond" type="chain"><param name="actionName">secondAction?account=test</param></result>

2,“Chain”的ResultType再配置的时候,除了actionName外,还有一个参数“namespace”,表示被链接的Action所在包的命名空间,默认为当前的命名空间。

<result name="toSecond" type="chain"><param name="actionName">secondAction</param><param name="namespace">namespace of other package</param></result>

原创粉丝点击