首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有为映射到名称'success‘的类型'redirect-action’定义结果类型

没有为映射到名称'success‘的类型'redirect-action’定义结果类型
EN

Stack Overflow用户
提问于 2013-03-06 17:05:22
回答 3查看 4.2K关注 0票数 4
代码语言:javascript
运行
复制
<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之后,我得到了以下错误:

代码语言:javascript
运行
复制
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

导致该错误的原因是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-06 17:10:14

您正在使用旧的操作重定向结果表示法。将redirect-action更改为redirectAction

票数 6
EN

Stack Overflow用户

发布于 2013-03-06 19:58:04

在Struts2.3.x中,一些代码发生了更改,比如将redirect-action更改为redirectAction

所以你必须这样声明它-

代码语言:javascript
运行
复制
<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>
票数 5
EN

Stack Overflow用户

发布于 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)

...

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15243002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档