No result defined for action

本文记录了一次解决Struts框架中出现的验证错误的过程。通过重写ActionSupport的方法定位到错误源头,并发现数据类型不匹配导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

从客户提交的问题中完全无法想到任何问题所在,百度后发现可能是页面提交的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值