Struts的action中用了addFieldError,页面第一次提交验证失败后,再次提交找不到action

 

今天遇到了一个问题:

在登陆页面:

当第一次输入登陆信息(用户名和密码)后,在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(该方法没有试验,不知道怎么配置)。

 

你可能感兴趣的:(struts)