驗證註解總結
Java校驗
用於處理我們提交的表單的資料的一些長度或者限制非空,註解的包是javax.validation.constraints
新增的maven依賴
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
註解 描述
@AssertFalse 所註解的元素必須是Boolean型別,且值為false
@AssertTrue 所註解的元素必須是Boolean型別,且值為true
@DecimalMax 所註解的元素必須是數字,並且它的值要小於會等於給定的BigDecimalString值
@DecimalMin 所註解的元素必須是數字,並且它的值要大於會等於給定的BigDecimalString值
@Digits 所註解的元素必須是數字,且值必須有指定位數
@Future 所註解的元素的值必須是一個將來的時間
@Max 所註解的元素必須是數字,並且它的值要小於或等於給定的值
@Min 所註解的元素必須是數字,並且它的值要大於或等於給定的值
@NotNull 所註解的元素必須不能為null
@Null 所註解的元素必須為null
@Past 所註解的元素的值必須是一個已過去的日期
@Pattern 所註解的元素的值必須匹配給定的正則表示式
@Size 所註解的元素的值必須是String、集合或陣列,並且它的長度要符合給定的範圍
做一個測試:
假設我們有一個test類:
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class Test {
/**
* username 不為空 長度在5-16個字元之間
* password 不為空 長度在8-16個字元之間
* number 不為空 大小在0-100之間
*/
@NotNull
@Size(min = 5, max = 16)
private String username;
@NotNull
@Size(min = 8, max = 16)
private String password;
@NotNull
@Max(100)
@Min(0)
private int number;
}
接下來就需要配置controller控制器了
我們需要接受一個test的型別
import Test;
import org.springframework.stereotype.Controller;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.validation.Valid;
@Controller // 宣告一個控制器
@RequestMapping
public class HomeController {
@RequestMapping("/submit")
public String submit(@Valid Test test, Errors errors){
if(errors.hasErrors()){
return "failed"; //如果提交的表單資料不符合校驗規則就返回失敗
}
return "success";//符合規則 就成功
}
}
//@Valid 是告訴Spring 需要確保這個物件滿足校驗限制
1@Valid @RequestParam("title") String title,可以多個註解修飾引數,並沒有限制,
2message是如果沒有滿足註解的條件,前端就會返回message中的資訊和@valid搭配使用,不然不能驗證
3可以自定義校驗validtor規則
額`wq\[[;q.w''d.eq\