4
<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

エラーの原因は何ですか?

4

3 に答える 3

6

アクションリダイレクトの結果に古い表記を使用しています。に変更redirect-actionredirectActionます。

于 2013-03-06T09:10:14.390 に答える
5

Struts 2.3.x では、redirect-actionredirectActionに変更されるなど、一部のコードが変更されています。

したがって、このように宣言する必要があります-

<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-06T11:58:03.960 に答える
3

Struts 以降2.1.0、すべてのデフォルトの結果名インターセプタ名Letter caseが古いspinal-caseものから新しいものに変更されましたcamelCase

Struts2.1.1リリース バージョン ノートから:

以前のバージョンとの下位互換性の問題

以降2.1.0: すべてのデフォルトの結果名とインターセプター名がキャメルケースになりました
(例: was redirect-action、 is now redirectAction)

...

于 2013-03-06T09:11:47.630 に答える