springboot--資料校驗
阿新 • • 發佈:2018-11-25
目錄
SpringBoot實現資料校驗的方法
- SpringBoot使用了Hibernate-validate校驗框架
- spring-boot-strarter-web啟動器中已經包含了Hibernate-validate的jar包
校驗方法
- 在實體類上加上校驗規則
-
public class Users { // @NotBlank非空校驗 // message屬性可以指定當出現錯誤時,被封裝進model中的value的值 @NotBlank(message = "使用者名稱不能為空") private String name; @NotBlank(message = "密碼不能為空") private String password; private Integer age; @Override public String toString() { return "Users{" + "name='" + name + '\'' + ", password='" + password + '\'' + ", age=" + age + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
-
- 在controller類中開啟校驗
-
/** * @Valid 開啟對Users的資料校驗 * @param u 需要儲存的實體類 * bindingResult 將校驗結果封裝進Model中,key為被校驗的物件的名稱(用駝峰命名法)(本次就是users), * @ModelAttribute 如果想對返回錯誤結果的model中的key值進行重新命名,可以使用該註解,並指定別名為"user" * @return */ @RequestMapping("/save") public String saveUser(@ModelAttribute("user") @Valid Users u, BindingResult bindingResult){ System.out.println(u); // 當bindingResult.hasErrors()==true則資料有錯,校驗失敗 if (bindingResult.hasErrors()){ return "addUser"; } return "ok"; }
-
- 在頁面中獲取錯誤資訊
-
<form action="/save" method="post"> 使用者名稱:<input type="text" name="name"> <!--剛進入頁面時,應為不存在user物件,所以需要判斷users是否存在,否則將丟擲異常--> <!--此處的屬性名user應該和前臺傳過來的一致,不然將不顯示--> <font color="red" th:if="${user}!=null" th:errors="${user.name}"></font><br> 密碼:<input type="password" name="password"> <font color="red" th:if="${user}!=null" th:errors="${user.password}"></font><br> 年齡:<input type="text" name="age"><br> <input type="submit" value="儲存"> </form>
-
常用的校驗方法
- @NotBlank:判斷字串是否為null或是空串,會自動去掉首尾空格
- @NotEmpty:判斷字串是否為null或是空串,不會自動去掉首尾空格
- @NotNull:判斷屬性值是否為null
- @Length(max=x,min=y):判斷字元的長度(最大為x,最小為y)
-
@Length(max = 8,min = 6,message = "密碼太短") private String password;
- @Min:用於對數值的判斷,指定最小值
- @Max:用於對數值的判斷,指定最大值
- @Email:判斷郵箱是否合法