No result defined for action

xiaoxiao2021-02-27  366

No result defined for action 在开发中总遇到这个问题,No result defined for action: 原因:Action中的属性值为空的时候,Struts2的默认拦截器会报错,但是又找不到input的Result,不能够把错误返回,所以报这种错误。 解决方法: 1.在页面中给空值赋默认值。 2.重新定义一个Action,去掉空值的成员变量。 3.添加input的Result,并在这个页面给出提示 --------------------------------------------------------------------------   当你在用struts2开发时,如果,从页面跳入action时,页面报No result defined for action and result时,大部分的原因有以下几种: 1、validate方法没有通过; 2、页面元素中有重命名时,但后台action类的对应的接收此同名参数的是变量而没有写成数组   要检查这种错误时,可以 1,在后台action类中重写ActionSupport中的 void addActionError(String anErrorMessage) void addActionMessage(String aMessage) void addFieldError(String fieldName, String errorMessage) 这三个方法,在并在其实现代码中设置断点,监控传入的参数,并可获知页面的相关报错具体原因. 2,在页面中加入以下标签,将错误显示出来 : < div style =”color:red” >     < s:fielderror /> </ div > --------------------------------------------------------------------------   public void addActionError(String anErrorMessage){    String s=anErrorMessage;    System.out.println(s);   }   public void addActionMessage(String aMessage){    String s=aMessage;    System.out.println(s);     }   public void addFieldError(String fieldName, String errorMessage){    String s=errorMessage;    String f=fieldName;    System.out.println(s);    System.out.println(f);     } 来自: http://www.itstrike.cn/Question/9eeeed8e-8a75-4f53-bde7-d0c0a2a6f1e6

No result defined for action and result input 

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

今天在在写项目中表单的修改功能时,出现了这个错误,一开始找不到头绪,以为是配置文件错了,看了好多遍都没有发现错误,在火狐浏览器中的firebug调试中看到了错误信息是Action没有找到,不应该的,配置文件没有问题。

上网找资料的时候看见有人说是可能是因为:

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

页面元素我知道没有重名,但是validate是跟添加数据共用的,如果有错误为什么添加的时候没有报错了。

看了下表单的ID ,修改的表单ID跟添加的表单ID是一样的,不过这两个是在不同的JSP文件中,应该不存在冲突,我在想是不是浏览器缓存的问题,从服务器上加载js文件可能出现问题,我试着在页面中输入一些错误的信息,发现validate.js并没有提示出错,有时候输入正确信息js验证依然报错,我在想可能就是这个验证问题了,

试着把修改和添加两个界面的表单ID改了(当时实在是没有其他办法了),重启服务器,发现修改能够顺利提交了。

值得警惕的是:删除过程中也出现了同样的错误

信息显示deleteAction中没有result return   这应该是配置文件错了,找到Action中并没错误,那么肯定是ACtion 中返回值出现了错误,果然,Action中返回值出现了错误。

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

1、validate方法没有通过(表单验证看看有没有重名,导致js文件加载过慢); 2、页面元素中有重命名时,但后台action类的对应的接收此同名参数的是变量而没有写成数组

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

4、对应Action中没有返回值,或者返回值出错

前几天一直以为validate验证错误是因为没有加载而导致错误,其实不是的,最初的错误是因为,我的修改页面的数据是从数据库中取出来的,string类型的还好,如果是float  型  为空值的话在页面上面就会显示null字符串,为了美观,决定在getvalue()之后判断一下是否为null  如果为null的话,我居然让它为“ ”,所以导致页面加载完之后有的float项变成了“ ”,所以提交的时候就报错了。。。。

转自  http://blog.csdn.net/yujin753/article/details/38686669
转载请注明原文地址: https://www.6miu.com/read-2556.html

最新回复(0)