1. JSR303注解验证
JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现,Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint
注解验证所需的jar包:
validation-api-1.1.0. Final.jar
hibernate-validator-5.2.0.Final.jar
Spring提供了对Bean的功能验证,通过注解@Valid表明哪个Bean需要启动注解式的验证。
验证注解的定义:
| 注解 | 详细信息 |
|---|---|
| @Null | 被注解元素必须为null |
| @NotNull | 被注释的元素必须不为null |
| @AssertTrue | 被注释的元素必须为true |
| @AssertFalse | 被注释的元素必须为false |
| @Min(value) | 备注是的元素必须为一个数字,其值必须大于等于指定的最小值 |
| @Max | 被注释的元素必须为一个数字,其值必须小于等于指定的最大值 |
| @DecimalMin | 被注的元素必须为一个数字,其值必须大于等于指定的最小值 |
| @DecimalMax | 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 |
| @Size(max,min) | 被注释的元素必须在指定的范围之内 |
| @Digits(integer,faction) | 被注释的元素是一个数字,必须在可接受的范围之内 |
| @Past | 被注释的元素必须是一个过去的元素 |
| @Future | 被注释的元素必须是一个将来的元素 |
| @Pattern | 被注释的元素必须符合指定的正则表达式 |
案例:
使用控制器完成表单的验证:
package com.controller;
@Controller
public class ValidateController {
@RequestMapping("/annotation")
public ModelAndView annotationValidate(@Valid Transaction trans ,Errors errors) {
//是否存在错误
if(errors.hasErrors()) {
//获取错误信息
List<FieldError> errorList = errors.getFieldErrors();
for (FieldError error : errorList) {
//打印错误字段信息
System.out.

这篇博客介绍了Spring MVC中两种表单验证方式:JSR303注解验证和验证器验证。JSR303是Bean Validation的Java EE 6规范,Hibernate Validator是其参考实现,提供了丰富的注解用于数据校验。Spring MVC通过@Valid注解支持注解式的验证。此外,当简单的注解验证不足以满足业务需求时,可以使用Spring的Validator接口自定义复杂的验证逻辑。最后,讨论了JSR303注解验证和验证器之间的关系,它们不能同时用于同一字段,但可以结合使用以增强验证功能。

812

被折叠的 条评论
为什么被折叠?



