2010.07.21——— struts2 redirectAction 传参问题
参考:[url]http://blog.csdn.net/cmtobby/archive/2007/11/18/1891120.aspx[/url]
问题一:
[color=red]最近在Struts2中配置action时,经常要在配置文件中给一个页面或者action传递若干个参数[/color],如下面所示:
如上所示,
cancelOrderId是我们通过url传递的一个参数名
forwordparam则是action中的一个实例变量,它具有相应的set和get方法。
问题二:
因为通常我只会传递一个,所以这样也没有问题。有一次碰到了要传2个参数的情况了,我就按照以前的习惯这样写: cancelOrderId=${forwordparam}&type=specialCancel
结果提示报错鸟,当然是 eclipse里面的xml校验报错咯。为什么这样写不行列?查了一下资料,又犯了经验注意错误啊。[color=red]在xml文件中&是属于特殊字符的,如果想表示&这个字符,需要对其进行转义[/color],因此我换了个写法,如下所示
cancelOrderId=${forwordparam}[color=red]&[/color] type=specialCancel
这样就ok了
另外一种写法:
这将会传递给initGongCheng两个参数 一个是falt为“delete” 另一个是gcbm 值是delete_dt里面的一个属性 在initGongCheng可以获得:
参考:[url]http://blog.csdn.net/cmtobby/archive/2007/11/18/1891120.aspx[/url]
问题一:
[color=red]最近在Struts2中配置action时,经常要在配置文件中给一个页面或者action传递若干个参数[/color],如下面所示:
<action name="outHotelAction" class="com.mangocity.hotelOrderFlow.web.outHotelOrderAction">
<result name="outsourcing" type="redirect">/orderFlow/outHotelAction!initOrder.action?cancelOrderId=${forwordparam} </result>
</action>
如上所示,
cancelOrderId是我们通过url传递的一个参数名
forwordparam则是action中的一个实例变量,它具有相应的set和get方法。
问题二:
因为通常我只会传递一个,所以这样也没有问题。有一次碰到了要传2个参数的情况了,我就按照以前的习惯这样写: cancelOrderId=${forwordparam}&type=specialCancel
结果提示报错鸟,当然是 eclipse里面的xml校验报错咯。为什么这样写不行列?查了一下资料,又犯了经验注意错误啊。[color=red]在xml文件中&是属于特殊字符的,如果想表示&这个字符,需要对其进行转义[/color],因此我换了个写法,如下所示
cancelOrderId=${forwordparam}[color=red]&[/color] type=specialCancel
这样就ok了
另外一种写法:
<action name="delete_dt" class="com.huitu.action.domain.XiTongGuanLi_GongChengXiangMu" method="delete_dt">
<result type="redirectAction">
<param name="actionName">initGongCheng.action</param>
<param name="gcbm">${GCBM}</param>
<param name="flat">delete</param>
</result>
</action>
这将会传递给initGongCheng两个参数 一个是falt为“delete” 另一个是gcbm 值是delete_dt里面的一个属性 在initGongCheng可以获得:
String GCBM = request.getParameter("gcbm");
String flat = request.getParameter("flat");