网站建设需求计划网站续费通知单
- 作者: 五速梦信息网
- 时间: 2026年04月20日 07:44
当前位置: 首页 > news >正文
网站建设需求计划,网站续费通知单,wordpress开启启gzip,企业网站的制作原则1.介绍 说明#xff1a; 其实Valid 与 Validated都是做数据校验的#xff0c;只不过注解位置与用法有点不同。 不同点#xff1a; #xff08;1#xff09; Valid是使用Hibernate validation的时候使用。Validated是只用Spring Validator校验机制使用。 #xff08;2 其实Valid 与 Validated都是做数据校验的只不过注解位置与用法有点不同。 不同点 1 Valid是使用Hibernate validation的时候使用。Validated是只用Spring Validator校验机制使用。 2 Valid 可以嵌套验证 Validation 不能进行嵌套验证 3 Valid可以用在方法、构造函数、方法参数和成员属性field上。 Validated用在类、方法和方法参数上。但不能用于成员属性field。 如果Validated注解在成员属性上则会报不适用于field的错误。 4 Valid没有分组功能。 Validated提供分组功能可以在参数验证时根据不同的分组采用不同的验证机制。 2.用法 1Valid用法 a.导入依赖 SpringBoot项目 dependencygroupIdjavax.validation/groupIdartifactIdvalidation-api/artifactIdversion1.1.0.Final/version /dependencydependencygroupIdorg.hibernate/groupIdartifactIdhibernate-validator/artifactIdversion5.4.1.Final/version /dependencyb.使用前提是实体类中属性使用注解进行校验 package com.example.demo.pojo;import lombok.Data; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.Range; import org.springframework.format.annotation.DateTimeFormat;import javax.persistence.; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date;//lombok Data public class User implements Serializable {//用户名NotBlank(message 请输入名称)Length(message 名称不能超过个 {max} 字符, max 10)private String username;//年龄NotNull(message 请输入年龄)Range(message 年龄范围为 {min} 到 {max} 之间, min 1, max 100)private String age;} c.在Controller方法参数中加上Valid注解 package com.example.demo.controller;import com.example.demo.pojo.User; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid; import java.util.List;RestController public class UserController {public static final Logger logger LoggerFactory.getLogger(UserController.class.getName());PostMapping(/add)ResponseBodypublic String add(Validated User user, BindingResult bindingResult){if(bindingResult.hasErrors()){ListObjectError allErrors bindingResult.getAllErrors();allErrors.forEach( v -{logger.error(v.getObjectName()v.getDefaultMessage());});return 添加失败;}return 添加成功;} } 经过测试填写错误数据会在控制台输出报错信息。 2Validated用法 a.开启校验框架与上面一样 !–1.导入JSR303规范– dependencygroupIdjavax.validation/groupIdartifactIdvalidation-api/artifactId /dependency !–使用hibernate框架提供的校验器做实现– dependencygroupIdorg.hibernate.validator/groupIdartifactIdhibernate-validator/artifactId /dependencyc.在需要开启校验功能的类上使用注解Validated开启校验功能对具体的字段设置校验规则,这里讲的是可以在类上使用Validated注解配合xml数据绑定。 Component Data ConfigurationProperties(prefix servers) //开启对当前bean的属性注入校验 Validated public class ServerConfig {//设置具体的规则Max(value 8888,message 最大值不能超过8888)Min(value 202,message 最小值不能低于202)private int port; }3Validated实现分组校验 注意 分组校验就是把条件加入组中可以自由选择开启那些组的校验方式。 a.分组接口 package com.example.demo.pojo;public interface Group {interface Update{};interface FindAll{}; }b.实体类 package com.example.demo.pojo;import lombok.Data; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.Range; import org.springframework.format.annotation.DateTimeFormat;import javax.persistence.; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date;//lombok Data public class User implements Serializable {//用户名NotBlank(message 请输入用户名不能为空,groups {Group.FindAll.class})Length(message 名称不能超过个 {max} 字符, max 10 ,groups {Group.FindAll.class})private String username;//年龄NotBlank(message 请输入年龄不能为空,groups {Group.Update.class})Range(message 年龄范围为 {min} 到 {max} 之间, min 1, max 100,groups {Group.Update.class})private String age;} c.controller接口 注意 Validated有参数 value中写分组名称 package com.example.demo.controller;import com.example.demo.pojo.Group; import com.example.demo.pojo.User; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid; import java.util.List;RestController public class UserController {public static final Logger logger LoggerFactory.getLogger(UserController.class.getName());PostMapping(/add)ResponseBody//注意Validated有参数 value中写分组名称public String add(Validated(value {Group.Update.class}) User user, BindingResult bindingResult){if(bindingResult.hasErrors()){ListObjectError allErrors bindingResult.getAllErrors();allErrors.forEach( v -{logger.error(v.getObjectName()v.getDefaultMessage());});return 添加失败;}return 添加成功;} }4Valid 实现嵌套校验 注: 嵌套检测就是在一个User类中存在另外一个User2类的属性。嵌套检测User同时也检测User2。 a.实体类User package com.example.demo.pojo;import lombok.Data; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.Range; import org.springframework.format.annotation.DateTimeFormat;import javax.persistence.; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date;//lombok Data public class User implements Serializable {//用户名NotBlank(message 请输入用户名不能为空1)private String username;//年龄NotBlank(message 请输入年龄不能为空1)private String age;ValidNotNull(message user2不能为空1)private User2 user2;}} b.实体类User2 package com.example.demo.pojo;import lombok.Data; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.Range; import org.springframework.format.annotation.DateTimeFormat;import javax.persistence.; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date;package com.example.demo.pojo;import lombok.Data; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Range;import javax.validation.constraints.NotNull; import java.io.Serializable;//lombok Data public class User2 implements Serializable {//用户名Length(message 名称不能超过个 {max} 字符2, max 10 )private String username2;//年龄Range(message 年龄范围为 {min} 到 {max} 之间2, min 1, max 100)private String age2;} c.Controller类这里使用Valid package com.example.demo.controller;import com.example.demo.pojo.Group; import com.example.demo.pojo.User; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid; import java.util.List;RestController public class UserController {public static final Logger logger LoggerFactory.getLogger(UserController.class.getName());PostMapping(/add)ResponseBodypublic String add(Valid User user, BindingResult bindingResult){if(bindingResult.hasErrors()){ListObjectError allErrors bindingResult.getAllErrors();allErrors.forEach( v -{logger.error(v.getObjectName()v.getDefaultMessage());});return 添加失败;}return 添加成功;} } 总结 了解这两个注解可以让你的校验数据更加方便。
- 上一篇: 网站建设需求公司内部调查如何设置自己的网站
- 下一篇: 网站建设需求列表政协网站建设申请函
相关文章
-
网站建设需求公司内部调查如何设置自己的网站
网站建设需求公司内部调查如何设置自己的网站
- 技术栈
- 2026年04月20日
-
网站建设需求方案上海网站营销怎么样
网站建设需求方案上海网站营销怎么样
- 技术栈
- 2026年04月20日
-
网站建设需求发布网站按内容分可以分为
网站建设需求发布网站按内容分可以分为
- 技术栈
- 2026年04月20日
-
网站建设需求列表政协网站建设申请函
网站建设需求列表政协网站建设申请函
- 技术栈
- 2026年04月20日
-
网站建设需求南通做网站厉害的
网站建设需求南通做网站厉害的
- 技术栈
- 2026年04月20日
-
网站建设需求说明书模板有没有教做蛋糕的网站
网站建设需求说明书模板有没有教做蛋糕的网站
- 技术栈
- 2026年04月20日
