今天遇到一个问题,在Webwork 2.2里面给一个Action的result传多个参数:
原先配置如下
<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的问题。
经过再三查询得到解决方案:
使用"&"代替"&",原理和HTML中的转义相同,我居然忘记了XML的语法规范,惭愧。
配置如下:
<result name="success" type="redirect">/some.action?field1=${field1}&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}&elementId=${elementId}</result>
这不就行了
现在xml和action里都已经配置好了。就来看jsp页面吧
再看一下jsp页面,因为xml里是直接轩跳的,没有经过Action
所以NewJsp.jsp?v=${type}取v的值时要这么取(例子)
<body> This is my JSP page. <br> parameters v <s:property value="#v"/> <s:debug></s:debug> </body>
到此, 整个的Struts2多个参数传参已经结束