struts2的RegexFieldValidator注解的实现:
其实主要也是看看validate方法的实现:
public void validate(Object object) throws ValidationException {
String fieldName = getFieldName(); // 得到field名称
Object value = this.getFieldValue(fieldName, object); // 得到field的值
//这里我们看到为什么在必填项上面我们还要使用一个RequiredStringValidate
//其实加上很多注解之后感觉代码和不整洁
// if there is no value - don't do comparison
// if a value is required, a required validator should be added to the field
if (value == null || expression == null) {
return;
}
// struts2是有强大的类型转换功能,在验证之前已经有其他的拦截器对
// 对参数做类型转换了
// XW-375 - must be a string
if (!(value instanceof String)) {
return;
}
// 我们看到此时才检验为空的情况,因为现在它肯定是一个string了
// 我估计在写代码的时候,可能在上面就进行判断了。但是这样很简洁
// string must not be empty
String str = ((String) value).trim();
if (str.length() == 0) {
return;
}
// 这里构造Pattern,来判断是不是大小写敏感的。
// match against expression
Pattern pattern;
if (isCaseSensitive()) {
pattern = Pattern.compile(expression);
} else {
pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
}
// 这里又有一个变量,这个实在是想不通,如果不trim,那就直接使用value,
// 如果trim就使用str就行了,不懂为什么又要引入一个compare变量
String compare = (String) value;
if ( trim ) {
compare = compare.trim();
}
Matcher matcher = pattern.matcher( compare );
if (!matcher.matches()) {
addFieldError(fieldName, object);
}
}
分享到:
相关推荐
Struts2注解是Struts2框架中的一种简化配置的方式,允许开发者在代码中直接进行配置,无需在XML文件中进行繁琐的设置。这提高了开发效率,并使得代码更具有可读性。 一、配置web.xml 在Struts2中,web.xml是部署...
Struts2注解是框架提供的一种简化XML配置的方式,它允许开发者在Action类或方法上直接添加注解,实现Action、结果(Result)和拦截器(Interceptor)的配置。这种方式提高了代码的可读性和可维护性,同时也减少了XML...
在Struts2中,输入校验器是一种实现数据验证的组件,它们通过配置在XML文件(如`default.xml`)中来定义,并与Action类的属性关联。`default.xml`文件通常位于`com/opensymphony/xwork2/validator/validators`路径下...
- **Annotation(标注)类型**:利用注解来进行验证,如`@NotNull`、`@Size`等。 - **Validation**:标记一个类需要被校验,通常配合Struts的配置文件使用。 ### 验证器类型详解 1. **...
scratch少儿编程逻辑思维游戏源码-减压游戏.zip
少儿编程scratch项目源代码文件案例素材-英勇之鸟.zip
少儿编程scratch项目源代码文件案例素材-羊羊繁殖V2.5.zip
scratch少儿编程逻辑思维游戏源码-加特林混战 多人游戏.zip
少儿编程scratch项目源代码文件案例素材-西装英雄.zip
在使用 R 语言进行科研绘图时,颜色的选择是一件让人特别纠结的事情。本系列文章介绍了 R 语言科研绘图时常用的一些配色。本资源给大家提供了文章对应的 PPT。
scratch少儿编程逻辑思维游戏源码-海洋战争.zip
少儿编程scratch项目源代码文件案例素材-万圣夜惊魂.zip
HarmonyOS安全开发赋能,含有HarmonyOS多个场景的安全策略赋能
平台的服务端和客户端源码 整理出来的的游戏源码
scratch少儿编程逻辑思维游戏源码-街头霸王.zip
少儿编程scratch项目源代码文件案例素材-小船.zip
scratch少儿编程逻辑思维游戏源码-几何冲刺(4).zip
少儿编程scratch项目源代码文件案例素材-消灭病毒大作战.zip
scratch少儿编程逻辑思维游戏源码-功夫猫.zip
scratch少儿编程逻辑思维游戏源码-节奏积木 马里奥.zip