返回INPUT是因为filedError,actionError,messageError中存在相关数据时,就会返回到INPUT,
我的错误就是设置了验证:
// 会员登录验证 @Validations( requiredStrings = { @RequiredStringValidator(fieldName = "member.userName", message = "用户名不允许为空!"), @RequiredStringValidator(fieldName = "member.password", message = "密码不允许为空!") } )
那么为什么在执行具体的方法的时候,添加fieldEror("username","username error"),不会跳到INPUT呢? 这是因为,struts2在执行action中某个具体方法之前,会调用valication方法,valication方法中会判断 filedError,actionError,messageError中其中任何一个是否有值,如果有,就会跳到INPUT, 如果想使用这三个方法,但又不想跳到INPUT,就得在valication中加clearFieldErrors(); clearActionErrors(); clearMessages(); 这样在调用valication方法时,error中的值就被清空了。