2010.07.21——— struts2 redirectAction 传参问题

2010.07.21——— struts2 redirectAction 传参问题

参考: http://blog.csdn.net/cmtobby/archive/2007/11/18/1891120.aspx

问题一:

最近在Struts2中配置action时,经常要在配置文件中给一个页面或者action传递若干个参数,如下面所示:

<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校验报错咯。为什么这样写不行列?查了一下资料,又犯了经验注意错误啊。 在xml文件中&是属于特殊字符的,如果想表示&这个字符,需要对其进行转义,因此我换了个写法,如下所示
cancelOrderId=${forwordparam} &amp; 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");








你可能感兴趣的:(eclipse,xml,.net,Blog)