最近在写一个struts2 的程序,
出现了一个很奇怪的问题:
如果使用错误的用户名登陆,不能成功,这是没有问题的;
但是我再使用正确的用户名, 依然不能成功登陆,
我仔细看了下,原来是 LoginAction.execute() 没有被执行。
查了下资料,发现了问题的所在:
-----------------------------------
ActionSupport类还有一个 public boolean hasErrors () 方法, 其实他内部实现是这样的:
(hasActionErrors() || hasFieldErrors()) , 分别检查有无Action级别的错误信息, 有无Fidld级别的错误的信息.
只要一个为真, 就跳回input 实图, 并显示错误信息(如果你写了相应的标签)
-----------------------------------
所以,我们要覆盖这个方法,就能够正确登陆了:
/**
* Override hasErrors method
*/
public boolean hasErrors( ) {
return false;
}
问题决绝了。