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

它能够在运行时动态生成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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值