当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

struts2的RegexFieldValidator注解的实现

发表于: 2010-01-08   作者:asialee   来源:转载   浏览次数:
摘要: struts2的RegexFieldValidator注解的实现: 其实主要也是看看validate方法的实现: public void validate(Object object) throws ValidationException { String fieldName = getFieldName(); // 得到field名称 Obje

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的RegexFieldValidator注解的实现

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
struts2之注解权限控制 今天结合Java的Annotation和Struts2进行注解拦截器权限控制。 功能需求:添
转载自:http://blog.csdn.net/yenching/article/details/5696549 既然说了是全注解开发,而且我们
今天在写struts2的注解时遇到了低级错误下面给个分享: 总结action配置: package com.test.web.act
Struts2基于注解方式配置文件 项目目录架构展示: 项目: 1:struts.xml文件 <?xml version="1.0
功能需求:添加、查找、删除三个功能,添加、查找功能需进行权限拦截判断,删除功能则不需进行权限
struts2-convention.plugin 插件与extjs 整合. 注:..其实这种struts2 的注解方式也可以与jquery,aja
在搭传统ssh框架时,碰到一个令人无比头疼的问题; 当采用注解式(即零配置)配置spring bean时,发
项目介绍 Struts 2 极速表单验证框架 最快速的后台表单验证框架 简洁,快速的验证语法 无需编写验证
我们都清楚使用convention插件可以是struts2为零配置,默认情况下convention指定的解析路径为WEB-IN
原创整理不易,转载请注明出处:整合Spring MVC,mybatis,hibernate,freemarker框架实现的自定义注
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号