spring表单校验(判断表单输入是否合法)

本文介绍了如何在Spring Boot应用中使用Hibernate Validator进行数据校验,包括在pom.xml中添加依赖、在实体类中定义约束条件,并在Controller中处理验证结果。展示了如何在视图层展示验证错误信息。
摘要由CSDN通过智能技术生成

1.在pom.xml添加依赖

    <dependency>
      <groupId>org.hibernate.validator</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>6.1.7.Final</version>
    </dependency>

2.在实体类中添加判断条件

@Data
public class Book {
    private int id;
    @NotBlank
    private String name;
    private String author;
    @Min(0)
    private int tid;
    @Min(0) 
    private double price;
    private String descri;
    private String photo;
    @DateTimeFormat(pattern = "yyyy-mm-dd")
    private Date   pubdate;
    private Type type;
}

3.controller增加

public String tooAdd(@Validated Book book, BindingResult result, HttpServletRequest request,Model model, MultipartFile photox) throws IOException {
        model.addAttribute("book",book);
        if (result.hasErrors()){
//            List<ObjectError> errorList = result.getAllErrors();
//            for(ObjectError error : errorList){
//                System.out.println(error.getDefaultMessage());
//            }
            System.out.println(result.hasErrors());
            List<Type> types=bookServer.selectTypeAll();
            model.addAttribute("types",types);
            return "book/add1";
        }
...............}

4.view层修改

1.th:classappend="${#fields.hasErrors('name')}? 'is-invalid'"

2.<div class="invalid-feedback"> <ul style="margin: 0px;"> <li th:each="err:${#fields.errors('name')}" th:text="${err}"></li> </ul> </div>

<div class="col-sm-10">
            <input type="text" class="form-control" th:classappend="${#fields.hasErrors('name')}? 'is-invalid'" id="inputName" name="name" th:field="*{name}">
            <div  class="invalid-feedback">
                <ul style="margin: 0px;">
                    <li th:each="err:${#fields.errors('name')}" th:text="${err}"></li>
                </ul>
            </div>
        </div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值