No result defined for action

这个错误的分析在网上已经很多了,此处仅作为此次遇到的问题解决过程记录:

从客户提交的问题中完全无法想到任何问题所在,百度后发现可能是页面提交的FORM中某个值在Action中未定义,尝试在Action中的执行方法中断点,但无法进入。

再看百度结果,可以看到这个是在Struts验证的时候就返回了该错误。按照提示在自己的Action中重写了3个ActionSupport的方法:

 1     public void addActionError(String anErrorMessage){
 2         String s=anErrorMessage;
 3         System.out.println(s);
 4     }
 5     public void addActionMessage(String aMessage){
 6         String s=aMessage;
 7         System.out.println(s);
 8     }
 9     public void addFieldError(String fieldName, String errorMessage){
10         String s=errorMessage;
11         String f=fieldName;
12         System.out.println(s);
13         System.out.println(f);
14     }        

再次通过页面提交,可以看到addFieldError中输出的错误属性名和错误原因。

通过这个方法找到了错误的元素,检查数据得到,该条数据与业务逻辑不符,传回值类型与之前定义的属性类型不一致,导致Struts验证不通过。

原文地址:https://www.cnblogs.com/justbeginning/p/3371535.html