| 核心提示:Struts2中通过配置文件重定向后常出现参数找不到的问题,总结一下解决方法: 1. 确保Action中的需要在redirect时传递变量是基本类型(比如int、long等); 2. 确保变量都有setter getter; 3. 配置文件: redirect方式: action name = view class = myActio |
Struts2中通过配置文件重定向后常出现参数找不到的问题,总结一下解决方法:
1. 确保Action中的需要在redirect时传递变量是基本类型(比如int、long等);
2. 确保变量都有setter & getter;
3. 配置文件:
redirect方式:
<action name="view" class="myAction" method="view">
<result name="success">view.jsp</result>
</action>
<action name="save" class="myAction" method="save">
<result name="success" type="redirect">view.html?id=${id}</result>
<result name="input">input.jsp</result>
</action>
<action name="view" class="myAction" method="view">
<result name="success">view.jsp</result>
</action>
<action name="save" class="myAction" method="save">
<result name="success" type="redirect">view.html?id=${id}</result>
<result name="input">input.jsp</result>
</action>
redirect-action方式略有不同,将重定向的result改成如下格式即可:
<result name="success" type="redirect-action">
<param name="actionName">view</param>
<param name="id">${id}</param>
</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的问题。
经过再三查询得到解决方案:
使用"&"代替"&",原理和HTML中的转义相同,我居然忘记了XML的语法规范,惭愧。
配置如下:
<action name="blahblahAction" class="blahAction" method="blah">
<result name="success" type="redirect">/some.action?field1=${field1}&field2=${field2}</result>
</action>
本文总结了Struts2框架中配置文件重定向后出现参数找不到的问题及解决方法,包括确保变量类型为基本类型、变量具备setter和getter方法,并提供配置文件示例。
187

被折叠的 条评论
为什么被折叠?



