SpringSide4数据验证终极指南:ValueValidator和TextValidator的完整使用教程
2026/4/23 21:51:10 网站建设 项目流程

SpringSide4数据验证终极指南:ValueValidator和TextValidator的完整使用教程

【免费下载链接】springside4A Spring Framework based, pragmatic style JavaEE application reference architecture.项目地址: https://gitcode.com/gh_mirrors/sp/springside4

SpringSide4是一个基于Spring Framework的实用风格JavaEE应用参考架构,提供了丰富的数据验证工具。本文将详细介绍SpringSide4中ValueValidator和TextValidator两个核心验证工具的使用方法,帮助开发者快速实现数据校验功能,确保应用程序的数据安全与准确性。

一、ValueValidator:值校验的瑞士军刀

ValueValidator是SpringSide4中用于值校验的核心工具类,位于modules/utils/src/main/java/org/springside/modules/utils/base/ValueValidator.java。它提供了灵活的校验机制,允许开发者定义自己的校验规则,或者使用内置的常用校验器。

1.1 核心方法:checkAndGet

ValueValidator的核心方法是checkAndGet,它的作用是对目标值进行校验,并根据校验结果返回相应的值。方法定义如下:

public static <T> T checkAndGet(T value, T defaultValue, Validator<T> v)
  • value:需要校验的值
  • defaultValue:校验失败时返回的默认值
  • v:校验器实例

使用示例:

// 校验目标值是否大于0,如果小于0则取值为1 ValueValidator.checkAndGet(-1, 1, Validator.INTEGER_GT_ZERO_VALIDATOR)

1.2 内置校验器

ValueValidator提供了几个常用的内置校验器,满足大部分基础校验需求:

1.2.1 INTEGER_GT_ZERO_VALIDATOR

校验整数是否大于0。源码如下:

Validator<Integer> INTEGER_GT_ZERO_VALIDATOR = new Validator<Integer>() { @Override public boolean validate(Integer value) { return (value != null && value > 0); } };
1.2.2 STRING_EMPTY_VALUE_VALIDATOR

校验字符串是否不为空。源码如下:

Validator<String> STRING_EMPTY_VALUE_VALIDATOR = new Validator<String>() { @Override public boolean validate(String value) { return StringUtils.isNotEmpty(value); } };
1.2.3 STRICT_BOOL_VALUE_VALIDATOR

校验字符串是否为布尔值("true"或"false",不区分大小写)。源码如下:

Validator<String> STRICT_BOOL_VALUE_VALIDATOR = new Validator<String>() { @Override public boolean validate(String value) { return "true".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value); } };

1.3 自定义校验器

除了使用内置校验器,开发者还可以通过实现Validator接口来创建自定义校验器。例如,创建一个校验字符串长度的校验器:

Validator<String> STRING_LENGTH_VALIDATOR = new Validator<String>() { @Override public boolean validate(String value) { return value != null && value.length() >= 6 && value.length() <= 20; } };

二、TextValidator:文本验证的全能工具

TextValidator是SpringSide4中用于文本验证的工具类,位于modules/utils/src/main/java/org/springside/modules/utils/text/TextValidator.java。它通过预编译的正则表达式,提供了多种常用文本格式的验证功能。

2.1 手机号验证

TextValidator提供了两种手机号验证方法:

2.1.1 isMobileSimple:简单验证

仅验证是否为1开头的11位数字。使用示例:

TextValidator.isMobileSimple("13800138000"); // 返回true TextValidator.isMobileSimple("1234567890"); // 返回false(长度不足)
2.1.2 isMobileExact:精确验证

根据运营商号段规则进行验证,支持移动、联通、电信等运营商的号码段。使用示例:

TextValidator.isMobileExact("13970998762"); // 返回true TextValidator.isMobileExact("11170998762"); // 返回false(号段不正确)

2.2 身份证验证

TextValidator支持15位和18位身份证号码的验证:

TextValidator.isIdCard("440101198909204518"); // 18位身份证,返回true TextValidator.isIdCard("440101891231451"); // 15位身份证,返回true TextValidator.isIdCard("440101198987754122"); // 无效身份证,返回false

2.3 邮箱验证

验证邮箱格式是否正确:

TextValidator.isEmail("abc@abc.com"); // 返回true TextValidator.isEmail("中文@a.com"); // 返回false(不支持中文) TextValidator.isEmail("abc@a"); // 返回false(域名不完整)

2.4 URL验证

验证URL格式是否正确:

TextValidator.isUrl("http://abc.com"); // 返回true TextValidator.isUrl("http://abc.c om"); // 返回false(包含空格) TextValidator.isUrl("abc.com"); // 返回false(缺少协议头)

2.5 日期验证

验证yyyy-MM-dd格式的日期,已考虑平闰年:

TextValidator.isDate("2011-03-11"); // 返回true TextValidator.isDate("2012-02-29"); // 闰年2月29日,返回true TextValidator.isDate("2011-02-29"); // 非闰年2月29日,返回false

2.6 IP地址验证

验证IP地址格式是否正确:

TextValidator.isIp("192.168.0.1"); // 返回true TextValidator.isIp("192.168.0.300"); // 返回false(超出255) TextValidator.isIp("192.168.A3.1"); // 返回false(包含字母)

三、实际应用场景

3.1 表单验证

在Web应用中,表单提交前可以使用TextValidator对用户输入进行验证:

if (!TextValidator.isMobileExact(phone)) { return "请输入有效的手机号"; } if (!TextValidator.isEmail(email)) { return "请输入有效的邮箱地址"; }

3.2 配置文件验证

使用ValueValidator验证配置文件中的参数:

// 从配置文件获取超时时间,确保其为正数,否则使用默认值30 int timeout = ValueValidator.checkAndGet(config.getInt("timeout"), 30, Validator.INTEGER_GT_ZERO_VALIDATOR);

3.3 数据持久化验证

在数据保存到数据库前,使用ValueValidator和TextValidator进行验证:

if (!ValueValidator.checkAndGet(user.getAge(), 18, Validator.INTEGER_GT_ZERO_VALIDATOR).equals(user.getAge())) { throw new IllegalArgumentException("年龄必须大于0"); } if (!TextValidator.isIdCard(user.getIdCard())) { throw new IllegalArgumentException("身份证格式不正确"); }

四、快速上手

要在项目中使用SpringSide4的验证工具,首先需要将项目克隆到本地:

git clone https://gitcode.com/gh_mirrors/sp/springside4

然后在你的Java代码中引入相应的类:

import org.springside.modules.utils.base.ValueValidator; import org.springside.modules.utils.text.TextValidator;

现在你就可以开始使用这些强大的验证工具了!

五、总结

SpringSide4的ValueValidator和TextValidator为Java开发者提供了便捷、高效的数据验证解决方案。ValueValidator适用于各种类型的值校验,支持自定义规则;TextValidator则专注于文本格式验证,涵盖了常见的手机号、身份证、邮箱等格式。通过合理使用这些工具,可以大大提高代码质量,减少因数据格式错误导致的问题。

希望本文能帮助你快速掌握SpringSide4数据验证工具的使用,为你的项目增添一份保障! 🚀

【免费下载链接】springside4A Spring Framework based, pragmatic style JavaEE application reference architecture.项目地址: https://gitcode.com/gh_mirrors/sp/springside4

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询