没有为动作和结果输入定义结果

时间:2011-04-21 09:41:37

标签: struts2

我正在使用Struts2

我收到错误,因为没有为动作和结果输入定义结果

<action name="update" method="updatePhase" class="Project">
   <result name="updated">/Project.jsp</result>
</action>

我的操作不是传递给我的java类。

任何人都可以帮助我吗?

10 个答案:

答案 0 :(得分:38)

错误消息表示尚未为您的操作定义名为input的结果。结果input是Struts在验证传递给操作的参数时出现的默认结果。因此,我建议检查并确保您从HTML表单传递的参数与您的操作参数相匹配。检查拼写,数据类型等。

答案 1 :(得分:4)

我遇到了同样的错误,我更改了struts.xml文件

from
<action name="Registeration101" class="Registeration101">
        <result name="success">pages/inputform.jsp</result>
        <result name="done">pages/quoteSuccess.jsp</result>
    </action>
 to
    <action name="Registeration101" class="Registeration101">
        <result name="success">pages/inputform.jsp</result>
        <result name="input">pages/inputform.jsp</result>
        <result name="done">pages/quoteSuccess.jsp</result>
    </action>

基本上结果名称=“输入”未定义

答案 2 :(得分:2)

假设您来自x.jsp。

有时,当您在bean类中放置验证注释时,您正在使用Action并且不提供 x.jsp,抛出异常。

如果您不想验证输入,只需从bean类中删除验证注释即可。

答案 3 :(得分:1)

一种解决方案是为操作指定名称为“input”的结果。这就是我通过注释解决问题的方法。

在:

@Action(value = "sendFeedback", results = {
    @Result(name = SUCCESS,type = "json"),
    @Result(name = ERROR,type = "json")})

后:

@Action(value = "sendFeedback", results = {
    @Result(name = SUCCESS,type = "json"),
    @Result(name = INPUT, type = "json"),
    @Result(name = ERROR,type = "json")})

答案 4 :(得分:1)

简单回答 - 当您提供错误输入时发生。 例如 - 如果你有一个名为“firstName”的字段,它是char类型,如果你提供了错误的输入(比如,int)

答案 5 :(得分:1)

最常见的情况是常规插件的存在。在其中查找具有“约定”的任何内容并删除它。不久将会有更详细的描述。

答案 6 :(得分:0)

<action name="update" method="updatePhase" class="Project">
   <result name="updated">/Project.jsp</result>
   <result name="input">/Project.jsp</result> <!-- add input return type as well in your struts.xml -->
</action>

通常,如果一切正常,控制器中的execute()/ updatePhase()会更新。 但是还有其他一些返回类型,struts会照顾它们。

您可以通过违反返回值和相应的

来手动处理
<result name="yourReturnValue">/Project.jsp</result> 

在相应的标签内。

希望现在很清楚。

答案 7 :(得分:0)

如果您在类文件中重写了validate方法(在您的情况下为class =“project”),那么它需要您在validate方法中使用的必要输入值。 您可以传递必要的值或更改validate方法中的一些验证。

答案 8 :(得分:-1)

我认为您必须在class=""的{​​{1}}标记下提供完全限定名称。然后 它会开始通过你的行动。

答案 9 :(得分:-1)

操作 struts.xml 中的结果名称应相等。如果你收到此错误仍然可能是jar文件问题。尝试将此jar文件添加到您的库中:javassist-3.9.0.GA.jar