Struts2的action之间如何传值?

njyu 2009-02-20

   在struts2的action中,我要从action1转到action2,同时带参数过去,使用如下方式只可以传递一个值:
   <result type="redirect" >/action2.action?test={test}</result>,这种凡是只能带一个参数.
   但是当我传递的是一个Person对象的时候就不可以了!不知道大家怎么解决传值的问题!
kyo100900 2009-02-20

<result type="redirect" >/action2.action?user.id={user.id}&amp;user.name={user.name}....</result>



试试。
njyu 2009-02-21
楼上的,非常感谢!按照你给的代码问题解决了!但是代码要做些许的修改:
<result type="redirect" >/action2.action?user.id=${user.id}&amp;user.name=${user.name}....</result>  
少了"$",user.name的值则是{user.name}

 
OuYangGod 2009-02-24
可以用chain
zhutianxiang 2009-02-27
你应该用chain,
chain会把前一个Action里的所有属性值带到下一个Action中来。
<result name="success" type="chain">loginShop</result>
loginShop为另外个Action的配置

记得在后一个Action中也要把属性写出来,并且提供getter,setter


njyu 2009-03-02
谢谢楼上的解答,对struts2目前我仅会简单的使用,对其特性还没有做深入的了解!
dengjianli 2009-04-07
chain好像不能从一个namespace到另一个namespace吧!
fykyx521 2009-05-08
好像
<action>
<param>有这个了把
</action>
iany 2009-05-12
Example:


<package name="public" extends="webwork-default">
     <!-- Chain creatAccount to login, using the default parameter -->
     <action name="createAccount" class="...">
         <result type="chain">login</result>
     </action>

     <action name="login" class="...">
         <!-- Chain to another namespace -->
         <result type="chain">
             <param name="actionName">dashboard</param>
             <param name="namespace">/secure</param>
         </result>
     </action>
</package>

<package name="secure" extends="webwork-default" namespace="/secure">
     <action name="dashboard" class="...">
         <result>dashboard.jsp</result>
     </action>
</package>
Global site tag (gtag.js) - Google Analytics