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 = , max = )
private String username;
@NotNull
@Size(min = , max = )
private String password;
@NotNull
@Max()
@Min()
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 需要確定這個對象滿足校驗限制