JAVA web项目中的no result defined for action xxxAction and result input 错误

No result defined for action and result input

产生这个错误的原因:Action中的属性值为空的时候,Struts2的默认拦截器会报错,但是又找不到input的Result,不能够把错误返回,所以报这种错误。

从上面可知,能够导致 No result defined for action result input 这种错误可能是因为:

1、validate方法没有通过(表单验证看看有没有重名,导致js文件加载过慢);

2、页面元素中有重命名时,但后台action类的对应的接收此同名参数的是变量而没有写成数组

3、配置文件中result 返回.jsp出现错误(多了空格、或者没有界面)

4、对应Action中没有返回值,或者返回值数据类型转换出错

5、工程里有一个BaseAction的类,并且BaseAction使用了验证框架,有一个BaseAction-validation.xml的文件。
而PoiterAction正好是BaseAction的一个子类,也继承了父类的验证框架,因此按照验证框架的运行流程来看这个问题就很明显了。由于验证框架在调用子类的时候首先加载父类的验证规则,然后等待输入,系统会找到input元素制定的JSP文件的输入信息,但是PoiterAction并没有input项,所以系统抛出No result defined for action…and result input。

6、表单中有文件上传功能,提交form表单时,需要加enctype = “multipart/form-data”

比如<form action=“xxxx.action” method=“post” name=“xxx” id="xxx"enctype = “multipart/form-data”>

如果不加enctype = "multipart/form-data"这个,在不同浏览器版本中,比如谷歌 52版本,不加也不会报错,但在58版本就报错了。所以避免浏览器兼容问题,最好加上!

猜你喜欢

转载自blog.csdn.net/weixin_42448255/article/details/83028723