今天遇到了一个问题:
在登陆页面:
当第一次输入登陆信息(用户名和密码)后,在action中通过addFieldError这个传出错误信息,页面显示正常;
第二次输入登录信息后,没有进入action,直接跳转到error指向的页面了,再次提交action也没有效果。
注:登陆页面的action中用了addFieldError输出用户登陆的错误信息,前端用<s:fielderror/>输出
在网上查了下:
原因是:项目中配置了action error后,error没有清空造成,
解决办法:
1.继承com.opensymphony.xwork2.Preparable接口,
public void prepare() throws Exception这个方法,并清空Action中的Error和Message信息:
@Override
public void prepare() throws Exception {
clearErrorsAndMessages();
}
2.在配置文件里设置ActionError或FieldError的有效范围为request(该方法没有试验,不知道怎么配置)。