1、validate()方法是ActionSupport接口的实现,会依次验证每个调用的方法,但是有些方法不需严重。
比如login()登录验证,但是logout()登出方法不需要验证数据,对于这种需要跳过验证的方法,可以添加
注解:@SkipValidation
例子如下:
public String login(){
IUsersDAO udao=new UsersDAOImpl();
if(udao.usersLogin(user)){
//session save username
session.setAttribute("loginUserName", user.getUsername());
return "login_success";
}else{
return "login_failure";
}
}
@SkipValidation
public String logout(){
if(session.getAttribute("loginUserName")!=null){
session.removeAttribute("loginUserName");
}
return "logout_success";
}
public void validate() {
if("".equals(user.getUsername().trim())){
this.addFieldError("usernameError", "用户名不能为空");
}
if(user.getPassword().length()<6){
this.addFieldError("passwordReeor", "密码长度不小于6");
}
}
2、报错404: No result defined for action action.UsersAction and result input
没有result name=input的结果映射
如果页面正常输入,后台处理成功,那么走success界面;如果后台校验失败,会把error存放在指定变量中,
这时默认result的name为input
示例如下:
<package name="users" namespace="/users" extends="default">
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="login_success">/users/Users_login_success.jsp</result>
<result name="login_failure">/users/Users_login.jsp</result>
<result name="logout_success">/users/Users_login.jsp</result>
<result name="input">/users/Users_login.jsp</result>
<allowed-methods>login,logout</allowed-methods>
</action>
</package>