Struts2报错:No result defined for *action and result input

本文分析了一个Struts2框架中Action发生的内部错误,解释了为何未进入预期的方法而直接返回默认的Result,并提供了排查及解决办法。

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

这里的报错有很多种情况,这里只说其中一个小分支。
首先,这个报错肯定是这个action发生了内部错误,然后自动转去名为input的result,之后发现你没有定义名为input的result而报错。

作为struts2的新手,在对应method里设置断点,但发现根本就没有进入那个method。

这里写图片描述

也就是说,没有进入方法ajaxViewCate,直接返回名为input的result了。

这是为什么呢?自己也不会查看更详细的报错信息。只好不断看博客。

看到直接返回input可能是因为类型转换失败。
然后看了下有没有两个名字一样的变量……
请求的URL是:

ohmygod?category=BIRDS

而该action中有个变量:

 private Category category;

而且我为其设置了get、set方法。
于是,String转Category失败,就报错了。(URL的category参数值获取我是用ParameterAware的)


所以获取从网页输入的数据时,一开始直接使用基本属性获取固然爽。(网页中的name属性值与action中某变量相同,且该变量有get、set方法),但之后如果在同一网页中发生命名相同的冲突,感觉这是很难发现的。所以以后从客户端获取,尽量用模型驱动啦,也就是

public class AccountAction extends ActionSupport implements ModelDriven<Account>

继承ModelDriven这种方法。尽量不用基本属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值