前几天遇到了这个问题,查了半天资料,这是我找到的比较全的说法:
1,检查UserAction中的getters&setters是否存在,正确
2,jsp页面传参数时别忘了用user.username <input type = "text" name = "user.username">
3,在UserAction中一定要写private User user;而不能写private User u;.与第二条中的user要对应
补充:其实不是这样的Struts只认Action中user的getset方法的名字,例如:jsp按照第二条这么写,那么UserAction中可以写private User user也可以写private User u;但是get和set方法必须是getUser()和setUser();
现在想起来马士兵提的那个问题了,Struts认的是方法名
4,在Action中接受属性的model不用new
5,网上有人跟在struts.xml里设置devMode为false有关(我一直设置为true)
但是检查后,都不是,最终发现是因为action重名了。当你在多个Action类中配置了相同的action(如add.action),程序就不知道add.action对应的是哪个Action类,找不到对应的model,就会报这种错误。