Struts2 语法--验证方式:

第一种方式: 重写validation的方式: 1. 在UserAction1里重写validation: @Override public void validate() { // TODO Auto-generated method stub if(user.getUsername().trim().equals("")||user.getUsername()==null){ this.addFieldError("username_error", "用户名不能为空"); } if(user.getPassword().length()<4||user.getPassword().length()>6){ this.addFieldError("password_error","密码必须为4~6位"); } String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(user.getEmail()); if(!matcher.matches()){ this.addFieldError("email_error", "电子邮箱格式不正确"); } super.validate(); } struts文件的设置: /login.jsp jsp文件里的显示: 2. 部分验证: 在登录界面输入用户名和密码, 不输入email UserAction3里写入一个方法,只验证add方法: public void validateAdd(){ if(user.getEmail()==null||user.getEmail().trim().equals("")){ this.addFieldError("email","电子邮箱不能为空"); } } struts.xml设置: /login_success.jsp 跳到UserAction3里调用add方法的时候,验证方法生效, 跳到/login_success.jsp 显示错误信息 struts.xml里也可以进行部分验证,action里写validate全部验证, 部分验证放在struts.xml里: 1 将UserAction3里的 validateAdd方法注销, 写validate方法 public void validate(){ if(user.getEmail()==null||user.getEmail().trim().equals("")){ this.addFieldError("email","电子邮箱不能为空"); } } 2. struts.xml验证: 意思是对add,delete进行验证 add,delete 注意验证的时候,用户名和密码输入正确, 邮箱要输入几个字符, 因为action3里的execute执行的时候, 还会验证validate,最终返回的是input的result 第二种方式:xml方式: 给对应的UserAction2写一个---UserAction2-validation.xml: 放在和action同层包下 用户名不能为空 密码不能为空 4 6 密码为4~6位 电子邮箱不能为空 电子邮箱格式不正确 自动还显示当前login.jsp界面: jsp文件里的显示: 第3种方式: :Annotation: action里全部验证格式: public void validate(){ if(user.getEmail()==null||user.getEmail().trim().equals("")){ this.addFieldError("email","电子邮箱不能为空"); } } 但是在add, delete,modify,execute等方法前面写上@SkipValidation 就可以跳过验证 @SkipValidation的意思理解就是: 抢到return result的权利

你可能感兴趣的:(Struts2 语法--验证方式:)