pom文件引入依賴:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> </dependency>
VO 頁面數據添加註解,傳過來的數據進行校驗。
/**
* 個人用戶 --展示對象 -- 註冊
* @author wly
*/
public class SavePersonUserVO {
private long id;
@NotBlank
private String personName;
@Min(0)
@Max(1)
@NotNull
private int sex;
@Min(1)
@Max(4)
@NotNull
private int licenseType;
@NotBlank
private String licenseNumber;
@NotBlank
private String telNumber;
@NotBlank
private String address;
@NotBlank
private String email;
//get、set方法
//toString 方法
}
Controller層使用@Valid註解, bindResult爲出錯數據
public Object savePersonUser(@Valid @RequestBody SavePersonUserVO savePersonUserVO, BindingResult bindResult, HttpServletResponse resp) {
logger.info("PersonUserController.savePersonUser>>>>>>personUserInfoVO:" + savePersonUserVO);
if (savePersonUserVO == null) {
return ErrorEnum.ILLEGAL_REQUEST_PARAMETER.resp(resp);
}
Result result = new Result();
if (bindResult.hasErrors()) {
if (logger.isWarnEnabled()) {
StringBuilder content = new StringBuilder();
for (FieldError item : bindResult.getFieldErrors()) {
content.append(item.getField()).append("=").append(item.getDefaultMessage()).append(",");
}
logger.info("個人用戶註冊時請求參數非法,原因:[{}]", content.substring(0, content.length() - 1));
}
return ErrorEnum.ILLEGAL_REQUEST_PARAMETER.resp(resp);
}
// ... ...
result.setInfo(true);
logger.info("PersonUserController.savePersonUser>>>>>>result:" + JsonUtils.object2Json(result));
return result;
}
postMan測試:
VO層註解總結:
@Null 被註釋的元素必須爲null
@NotNull 被註釋的元素不能爲null
@AssertTrue 被註釋的元素必須爲true
@AssertFalse 被註釋的元素必須爲false
@Min(value) 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值
@Max(value) 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值
@DecimalMin(value) 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值
@DecimalMax(value) 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值
@Size(max,min) 被註釋的元素的大小必須在指定的範圍內。
@Digits(integer,fraction) 被註釋的元素必須是一個數字,其值必須在可接受的範圍內
@Past 被註釋的元素必須是一個過去的日期
@Future 被註釋的元素必須是一個將來的日期
@Pattern(value) 被註釋的元素必須符合指定的正則表達式。
@Email 被註釋的元素必須是電子郵件地址
@Length 被註釋的字符串的大小必須在指定的範圍內
@NotEmpty 被註釋的字符串必須非空
@Range 被註釋的元素必須在合適的範圍內