struts2的Action传参总结

本文介绍在Struts2框架中如何正确配置并传递多个URL参数至action的方法,包括解决XML特殊字符转义问题及使用redirectAction类型的result进行参数传递。

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

<action name="GetStudent" class="com.xy.StudentAction">
<wbr><wbr> &lt;result name="stu" type="redirect"&gt;</wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr> /orderFlow/student!get.action?stuId=<strong><span style="color:#ed1c24">${stuId}</span></strong></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> &lt;/result&gt;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br> &lt;/action&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

stuId是我们通过url传递的一个参数名,stuId则是action中的一个实例变量,它具有相应的set和get方法。因为通常我只会传递一个,所以这样也没有问题。

<wbr></wbr>

有一次碰到了要传2个参数的情况了,我就按照以前的习惯这样写:stuId=${stuId}&type=${type},结果报错,当然是eclipse里面的xml校验报错咯。

<wbr></wbr>

查了一下资料,又犯了经验注意错误啊。在xml文件中&是属于特殊字符的,如果想表示&这个字符,需要对其进行转义,因此我换了个写法,如下所示stuId=${stuId}&amp;type=${type}。

<wbr></wbr>

还有一种做法

<action name="addcontacter" class="contactAction" method="addContacter">
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;result type="redirectAction"&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;param name="actionName"&gt;contacter&lt;/param&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;param name="con_id"&gt;${con_id}&lt;/param&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;param name="name"&gt;${name}&lt;/param&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;/result&gt;<br> &lt;/action&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

参考博客:

http://blog.youkuaiyun.com/tiantian511/article/details/4421102

http://blog.sina.com.cn/s/blog_7ca4f305010125mf.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值