欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【转载】Struts2 action之间相互跳转传递参数

程序员文章站 2022-03-03 08:59:11
...

 

今天遇到一个问题,在Webwork 2.2里面给一个Action的result传多个参数:


原先配置如下

<action name="blahblahAction" class="blahAction" method="blah">
  <result name="success" type="redirect">/some.action?field1=${field1}&field2=${field2}</result>
</action>

 

 

运行时候出现如下提示:
The reference to entity "field2" must end with the ';' delimiter.


我本以为是OGNL的问题,四处搜寻,不得其解……看了DTD也没有发现问题。
后来修改过程中突然发现原来是SAX解析器出错,我这才想到可能是XML的问题。

过再三查询得到解决方案:
使用"&amp;"代替"&",原理和HTML中的转义相同,我居然忘记了XML的语法规范,惭愧。(在Struts.xml中是否可以使用CDATA段呢)


配置如下:

<action name="blahblahAction" class="blahAction" method="blah">
  <result name="success" type="redirect">/some.action?field1=${field1}&amp;field2=${field2}</result>

 

 

 下边是另外一个人的:

今天在用struts2在做项目时候,从一个action我想跳转到另一个action,并且呢得带上值。说说我的做法吧,首先你得在你的第一个action中这个id必须要有set、get方法。
跳转时你的struts.xml:
(方法一):
<result name="topic" type="redirect">/topicAction!findTopics.do?topicId=${topicId}</result>
(方法二):
<result name="topic" type="redirect-action">
  <param name="actionName">findTopics</param>
  <param name="topicId">${topicId}</param>
</result>

如果是多个参数的话,继续再加几个<param>就行了,对于(方法一)如果是多个参数的怎么办? <result name="topic" type="redirect">/topicAction!findTopics.do?topicId=${topicId}&amp;elementId=${elementId}</result>
这不就行了。