首页 > 其他分享 >Lombok库和实体类表单校验--Bean Validation API

Lombok库和实体类表单校验--Bean Validation API

时间:2022-11-24 15:10:05浏览次数:68  
标签:实体类 String -- 校验 private Bean API message Lombok


它能够在运行时动态生成getter,setter方法,以及equals()、hashCode()、toString()这些方法;

类级别的@Data注解就是由Lombok提供的,它会告诉Lombok生成所缺失的方法,同时还会生成所有以final属性作为参数的构造器。

IDEA使用Lombok必须要导入与IDEA版本号(启动时显示界面中有)完全匹配的包;

Eclipse导入成功后bin目录下会有lombok.jar的文件;

Spring tool suite右键单击pom.xml找到spring=>editstarters=>​​https://start.spring.io​​=>选择Lombok导入即可;

@slf4j(simple logging facade for java)这也是Lombok提供的注解;

相当于

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DesignTacoController.class)

 

spring支持java的bean校验API(Bean validation API,也被称为JSR-303)。这样的话,我们就能够更容易声明校验规则,而不必在应用程序中显示编写声明逻辑。借助SpringBoot,要在项目中添加校验库,我们甚至不需要做任何特殊的操作。这是因为Validation API以及Validation API的Hibernate实现将会作为SpringBoot-Web-starter的传递性依赖自动添加到项目中。

声明校验规则

保证name属性不能为空或null,它使用@NotNull和@Size注解来声明这些校验规则

@Data
public class Taco{
@NotNull
@Size(min=5,message="Name must be at least 5 characters long")
private String name;
@Size(min=1,message="You must choose at least 1 ingredient")
private List<String> ingredients;
@NotBlack(message="Street is required")
private String street;
@CreditCardNumber(message="Not a valid credit card number") //合法的信用卡号码
private String ccNumber;

@Pattern(regexp="^(0[1-9]|1[0-2])([\\/])([1-9][0-9])$",message="Must be formatted MM/YY")
private String ccException;

@Digits(integer=3,fraction=0,message="Invalid CVV") //它的值包含三位数字
private String ccCVV;
}

在表单绑定的时候进行校验

让表单在Post提交至对应的控制器方法时执行对应的校验。@Valid注解会告诉SpringMVC要对提交的Taco对象进行校验,而校验时机是在它绑定完成表单数据之后、调用processDesign()之前。如果存在校验错误,那个这个方法将不会处理Taco对象并返回“design”视图名,表单会重复展现。

@PostMapping
public String processDesign(@Valid Taco design,Errors errors){
if(errors.hasErrors()){
return "design";
}
log.info("processing design:"+design);
return "redict:/orders/current";
}

展现校验的错误

<label for="ccNumber">Credit Cart #:</label>
<input type="text" th:field="*{ccNumber}"/>
<span class="validationError"
th:if="${#fields.hasErrors('ccNumber')}"
th:errors="*{ccNumber}" >
CC Num Error
</span>

 

标签:实体类,String,--,校验,private,Bean,API,message,Lombok
From: https://blog.51cto.com/u_15890333/5883977

相关文章

  • springboot的 application-dev.yml配置
    server:port:8888servlet:context-path:/pshdhxcompression:enabled:truemime-types:application/javascript,applic......
  • 插入排序之直接插入排序,折半插入,希尔排序详解和特点
    插入排序引申了三种:直接插入排序,折半插入排序,希尔排序一、直接插入排序直接插入排序排序方法: 1、查找出L(i)在L[1……i-1]中的位置k。2、将L[k……i-1]所有元素全部后移......
  • css元素显示模式
    ......
  • Linux用户和用户组管理
    一、用户配置文件  用户管理简介:     linux把通过把用户分为三个基本组,user,group,other来分配基本的权限  用户通过/etc/passwd用过用户名来获取用户的uid,通过......
  • 数据工程师被当作取数的怎么办?
    首先:我们需要明确提取数据是数据工作的一个基础内容,也是大多数“入门”级别数据工作人员(例如数据分析师、ETL)的基本职责,对于前期了解公司业务和数据是必不可少的。但是如果......
  • Cent os 7配置网络连通外网
    1、在centos7以前,Linux的redhat系列可以使用setup指令产生的图像化界面手动配置ip,但是自从centos7发布以后,该指令无法配置网卡信息,我们可以手动配置或是使用新的图形化界面......
  • 软件工程详细设计师竞聘演讲稿
    分别结合成功和失败的案例,讲述需求分析的作用;分别结合成功和失败的案例,讲述总体设计的作用;分别结合成功和失败的案例,讲述详细设计的作用;分别结合成功和失败的实际案例,讲述项......
  • 原生mybatis使用细节回顾
    mybatis笔记1、${}和#{}的区别#{}是获取参数的内容支持,索引获取;#{0},parameterType可以是intString之类的。${param1}获取指定位置的参数;======#{0}若是parameterType......
  • 配置nginx动静分离全步骤
    1、目的高并发环境下,大量请求从服务器后端获取资源,给后台服务器造成了巨大的压力。因此,在发布代码时,需要将后端的静态资源放到nginx,形成动态文件和静态文件分离。静态文件就......
  • 返回字符串中的最大回文数
    /***@authorpshdhx*@date2022-08-0315:20*@Des给你一个字符串s,找到s中最长的回文子串。*输入:s="babad"*输出:"bab"*解释:"aba"同样是符合题意的......