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;
}
}

struts2自定义声明校验器的更多相关文章

  1. Struts2笔记——Action校验器

    在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验.  对于输入校验struts2提供了两种实现方法: 1.采用手工编写代码实现. 2.基于XML配置 ...

  2. Struts2内建校验器(基于校验框架的文件校验)

    位于xwork-2.0.4.jar压缩包中( com.opensymphony.xwork2.validator.validators)有个文件default.xml ,该文件中定义了Struts2框 ...

  3. Struts2 自定义输入校验 第五弹

    Struts2的校验框架有两种:一种是validate方法,另一种是有效的xml文件. Action中自定义方法的输入校验,对于通过action的method属性所指定的自定义方法myExecute, ...

  4. Struts2内置校验器——完整实例代码

    一.校验器的配置风格 1.字段校验器: <field name="被校验的字段"> <field-validator type="校验器名"& ...

  5. struts2自定义Interceptor拦截器

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. struts2自定义登录拦截器

    版权声明:本文为博主原创文章,未经博主允许不得转载. (1)配置web.xml,让xml加载struts2框架 <?xml version="1.0" encoding=&q ...

  7. struts2 提供的校验器列表

  8. Bean Validation完结篇:你必须关注的边边角角(约束级联、自定义约束、自定义校验器、国际化失败消息...)

    每篇一句 没有任何技术方案会是一种银弹,任何东西都是有利弊的 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JSR303.JSR349.JSR380)H ...

  9. 【参数校验】 自定义校验器 (实现ConstraintValidator)

    日常工作中写接口时,往往需要校验前端传来的枚举状态码,例如"1","2"等等, 这里使用java 303规范的参数校验框架封装一个自定义参数校验器: /** * ...

随机推荐

  1. swift学习网站

    http://letsswift.com/category/swiftguide/http://www.imooc.com/course/list?is_easy=3&c=ioshttp:// ...

  2. HDU 2571 命运 动态规划

    命运 http://acm.hdu.edu.cn/showproblem.php?pid=2571 Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了!可谁能想到, ...

  3. 怎样强制QQ聊天

    首先复制下面这段网址: http://wp.qq.com/open_webaio.html?sigt=2d3bb7d31517da8c94a1061c6b63dd3203eb633805dcd09ec ...

  4. poj 2975 Nim 博弈论

    令ans=a1^a2^...^an,如果需要构造出异或值为0的数, 而且由于只能操作一堆石子,所以对于某堆石子ai,现在对于ans^ai,就是除了ai以外其他的石子 的异或值,如果ans^ai< ...

  5. 妙味课堂——HTML+CSS(第四课)(一)

    这一课学的东西真是太多了,还不赶快记下来,留待以后慢慢回味! 首先我们回顾一下inline-block的特性: 使块元素在一行显示 使内嵌支持宽高 换行被解析了(问题) 不设置宽度的时候,宽度由内容撑 ...

  6. nodejs的require模块及路径

    在nodejs中,模块大概可以分为核心模块和文件模块. 核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net')). 文件模块,则是指js文件.json文 ...

  7. Linux操作系统下的Sudo命令

    查看.修改或者执行某些命令需要root用户的权限,如果不想直接切换到root用户,就可以使用sudo命令.sudo命令用于针对单个命令授予临时权限.sudo仅在需要时授予用户权限,减少了用户因为错误执 ...

  8. python编写规范

    一.说明 二.内容 1. 代码布局 1.1 缩进 1.2 表达式和语句中的空格 1.3 行的最大长度 1.4 空行... 1.5 编码... 2. 语句... 2.1 标准头部... 2.2 导入(i ...

  9. 美丽渐变色的Form

    一直都非常喜欢渐变色的界面,但是没想到漂亮的渐变Form原来这么简单...实在是没想到...看来我不仅技术水平低,脑袋里的创意也是空空如也... --------------------------- ...

  10. css属性

    文本: color 颜色 line-height 行高 direction 文本方向 letter-spacing 字符间距 text-align 对齐方式 text-decoration 文本修饰 ...