【发布时间】:2011-04-21 09:41:36
【问题描述】:
我正在使用 Struts2
我收到错误,因为没有为操作和结果输入定义结果
<action name="update" method="updatePhase" class="Project">
<result name="updated">/Project.jsp</result>
</action>
我的操作没有传递给我的 java 类。
谁能帮帮我?
【问题讨论】:
标签: struts2
我正在使用 Struts2
我收到错误,因为没有为操作和结果输入定义结果
<action name="update" method="updatePhase" class="Project">
<result name="updated">/Project.jsp</result>
</action>
我的操作没有传递给我的 java 类。
谁能帮帮我?
【问题讨论】:
标签: struts2
错误消息表示尚未为您的操作定义名为 input 的结果。结果input 是Struts 在验证传递给动作的参数时返回的默认结果。因此,我建议检查并确保您从 HTML 表单传递的参数与您的操作参数匹配。检查拼写、数据类型等。
【讨论】:
我遇到了同样的错误,我更改了我的 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>
基本上结果 name="input" 没有定义
【讨论】:
假设你来自 x.jsp。
有时当您在 bean 类中放置验证注释时,您在 Action 中使用并且不提供 x.jsp ,抛出异常。
如果您不想验证输入,只需从 bean 类中删除验证注释即可。
【讨论】:
一种解决方案是为操作指定名称为“输入”的结果。这就是我通过注释解决问题的方法。
之前:
@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")})
【讨论】:
简单的答案 - 当您提供错误的输入时会发生。 例如 - 如果您有一个名为“firstName”且类型为 char 的字段,并且您提供了错误的输入(例如,int)
【讨论】:
最常见的情况是约定插件的存在。寻找其中带有“约定”的任何内容并将其删除。稍后将有更详细的说明。
【讨论】:
<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>
对应标签内。
希望现在很清楚。
【讨论】:
如果您在类文件中重写了 validate 方法(在您的情况下为 class="project"),那么它需要您在 validate 方法中使用的必要输入值。 您可以在 validate 方法中传递必要的值或更改一些验证。
【讨论】:
Action 和 struts.xml 中的 Result 名称应该相同。不过,如果您收到此错误,则可能是 jar 文件问题。尝试将此 jar 文件添加到您的库中:javassist-3.9.0.GA.jar。
【讨论】:
我认为您必须在 struts.xml 的标签 class="" 下提供完全限定名称。然后
它会开始传递你的动作。
【讨论】: