我正在使用Struts2
我收到错误,因为没有为动作和结果输入定义结果
<action name="update" method="updatePhase" class="Project">
<result name="updated">/Project.jsp</result>
</action>
我的操作不是传递给我的java类。
任何人都可以帮助我吗?
答案 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
。