jac*_*ind 4 java configuration camelcasing struts2 naming-conventions
<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>
Run Code Online (Sandbox Code Playgroud)
随着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
Run Code Online (Sandbox Code Playgroud)
是什么导致错误?
在Struts 2.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>
Run Code Online (Sandbox Code Playgroud)