<action name="saveGetStarted" class="com.sample.action.GetStartedAction" method="save">
<interceptor-ref name="defaultStack"/>
<result name="success" type="redirect-action">
<param name="actionName">preQualification</param>
<param name="customerId">${customerId}</param>
</result>
<result name="input">/jsp/getStarted.jsp</result>
<result name="error">/jsp/getStarted.jsp</result>
</action>
<action name="preQualification" class="com.sample.action.PreQualificationAction">
<result name="success">/jsp/preQualification.jsp</result>
<result name="input" >/jsp/preQualification.jsp</result>
</action>对于struts2-core-2.0.12.jar,它工作得很好,但是在更新到struts2-core-2.1.6.jar之后,我得到了以下错误:
Caused by: There is no result type defined for type 'redirect-action' mapped with name 'success'. Did you mean 'redirectAction'? - result - file:/D:/eclipse-indigo/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Fundation/WEB-INF/classes/struts.xml:19:54
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:613)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:364)
... 26 more导致该错误的原因是什么?
发布于 2013-03-06 17:10:14
您正在使用旧的操作重定向结果表示法。将redirect-action更改为redirectAction。
发布于 2013-03-06 19:58:04
在Struts2.3.x中,一些代码发生了更改,比如将redirect-action更改为redirectAction
所以你必须这样声明它-
<action name="saveGetStarted" class="com.sample.action.GetStartedAction" method="save">
<interceptor-ref name="defaultStack"/>
<result name="success" type="redirectAction">
<param name="actionName">preQualification</param>
<param name="customerId">${customerId}</param>
</result>
<result name="input">/jsp/getStarted.jsp</result>
<result name="error">/jsp/getStarted.jsp</result>
</action>
<action name="preQualification" class="com.sample.action.PreQualificationAction" method="excute">
<result name="success">/jsp/preQualification.jsp</result>
<result name="input">/jsp/preQualification.jsp</result>
</action>发布于 2013-03-06 17:11:48
自从Struts以来,所有默认的结果名称和拦截器名称都更改了Letter case,从旧的spinal-case更改为新的camelCase。
从Struts 2.1.1 release version notes
与以前版本的向后兼容性问题
从2.1.0开始:所有默认的结果名称和拦截器名称现在都使用camelCase
(例如,曾经是redirect-action,现在是redirectAction)
...
https://stackoverflow.com/questions/15243002
复制相似问题