struts2自定义声明校验器
2015-09-05 22:14
483 查看
1 //新建一个validators.xml在src根资源下,会覆盖default.xml的validators,所以你懂得 //接着,若使用声明式校验,则要把配置文件xxxAction-validation.xml放入与Action类同级目录下 //看default.xml的源码,找一个validator的类看看里面的写法,发现继承此类即可 public class MyValidators extends FieldValidatorSupport { //object表示校验的Action类 public void validate(Object object) throws ValidationException { // TODO Auto-generated method stub //拿到字段名 String fieldName = getFieldName(); String value = (String)this.getFieldValue(fieldName, object); // if (value == null) { // addFieldError(fieldName, object); // } //若值不为空那么业务逻辑才能继续 if(StringUtils.isNotEmpty(value)) { // this.addFieldError(value, object); //若密码强度为弱,则校验不通过 if(!validatePass(value)) { //这里不用写错误提示,因为错误消息是在xml的配置文件中指定的,声明式验证在message写错误信息的 this.addFieldError(fieldName, object); } } } //以下是校验密码强度的 private static final String GROUP1 = "abcdefghijklmnopqrstuvwxyz"; private static final String GROUP2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private static final String GROUP3 = "0123456789"; protected boolean validatePass(String password) { boolean ok1 = false;//有一个小写字母就为true boolean ok2 = false;//有一个大写字母就为true boolean ok3 = false;//有一个数字就为true int length = password.length(); for(int i=0;i<length;i++){ if(ok1&&ok2&&ok3) break; String character = password.substring(i,i+1); if(GROUP1.contains(character)){ ok1 = true; continue; } if(GROUP2.contains(character)){ ok2 = true; continue; } if(GROUP3.contains(character)){ ok3 = true; continue; } } return ok1&&ok2&&ok3; } }
相关文章推荐
- java内存设置
- SpringMVC框架
- Java文件的MD5校验和CRC校验
- [Java基础]Java新手通病的知识总结
- java 用new语句创建(实例化)对象的三种方法的性能对比
- JAVA实现DES加密
- java复习 --集合类
- JAVA实现AES加密
- java笔记—初识面向对象01
- Java中的instanceof关键字
- 深入理解java异常处理机制
- java中关于锁的关键字
- JavaWeb-ServletContext对象总结
- 关于Java 调用函数进行两个变量值的交换
- 动态代理之一:JDK动态代理 和异常 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.
- What's the point of Spring MVC's DelegatingFilterProxy?
- Java多态
- 深入理解Java的接口和抽象类
- Java拾遗-内部类和匿名类
- 搭建eclipse的javaWeb开发环境