当前位置: 代码迷 >> Web前端 >> No result defined for action.and result input
  详细解决方案

No result defined for action.and result input

热度:306   发布时间:2012-08-22 09:50:35.0
No result defined for action.....and result input

在最近的strut2练习中遇到了一个非常隐蔽的问题,这个问题几乎花了我一天的时间。问题&解决方法如下:(project中的一部分代码)
????创建了一个用于跳转的PoiterAction,代码再简单不过了,只有一个返回SUCCESS字符串的execute方法。
????在struts.xml配置文件中配置了和SUCCESS对应的实体页面
????<result name="success">xxxxx.jsp</result>
????然后运行应用的时候调用该action时出现了?No result defined for action.....and result input 的错误。这个错误是没有在配置文件中给action添加所需要的
<result name="input">xxxxx.jsp</result>元素。
????这就觉得奇怪了!我并没有任何数据需要提交到该action中啊。
????最后做了很多的测试。原因是工程里有一个BaseAction的类,并且BaseAction使用了验证框架,有一个BaseAction-validation.xml的文件。
????而PoiterAction正好是BaseAction的一个子类,也继承了父类的验证框架,因此按照验证框架的运行流程来看这个问题就很明显了。由于验证框架在调用子类的时候首先加载父类的验证规则,然后等待输入,系统会找到input元素制定的JSP文件的输入信息,但是PoiterAction并没有input项,所以系统抛出No result defined for action.....and result input。
????删除了BaseAction-validation.xml文件后就可以正常运行了。
?结论:在开发的时候应该尽量不对基类做任何验证,虽然使用继承基类的验证框架可以减少工作量,但是有时会出现不必要的麻烦。应该对具体类实施验证。 <!--EndFragment-->

  相关解决方案