Hibernate-Validator

實體配置

@ApiModelProperty(value="時段名稱" ,dataType="String",name="timeName",example="時段名稱")
@NotBlank(message ="名稱不能爲空")
private String timeName;
@ApiModelProperty(value="開始時間" ,dataType="LocalTime",name="startTime",example="11:00")
private LocalTime startTime;
@ApiModelProperty(value="結束時間" ,dataType="LocalTime",name="endTime",example="19:00")
private LocalTime endTime;
@ApiModelProperty(value="當前狀態" ,dataType="Integer",name="status",example="1")
private Integer status = 1;

Controller配置

@RestController
@Api(tags = "時段管理")
@RequestMapping("/cc")
@Validated
public class ClassTimeController {
@PostMapping("/add")
@ApiOperation(value = "添加時段", notes = "添加課使用的時段")
public CommonResponse classTimeAdd(@RequestBody @Valid ClassTime classTime) {
    return classTimeService.add(classTime);
}

全局Controller錯誤攔截處理

@ControllerAdvice
public class GlobalExceptionHandler {
    /**
     * 處理驗證信息返回
     * @param ex
     * @return
     */
    @ExceptionHandler(MethodArgumentNotValidException.class)
    @ResponseBody
    public CommonResponse handleBindException(MethodArgumentNotValidException ex) {
        FieldError fieldError = ex.getBindingResult().getFieldError();
        return CommonResponse.response(500,fieldError.getDefaultMessage(),null);
    }
}

常用註解
註解 釋義
@Nul 被註釋的元素必須爲 null
@NotNull 被註釋的元素必須不爲 null
@AssertTrue 被註釋的元素必須爲 true
@AssertFalse 被註釋的元素必須爲 false
@Min(value) 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值
@Max(value) 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值
@DecimalMin(value) 被註釋的元素必須是一個數字,其值必須大於等於指定的最小值
@DecimalMax(value) 被註釋的元素必須是一個數字,其值必須小於等於指定的最大值
@Size(max, min) 被註釋的元素的大小必須在指定的範圍內,元素必須爲集合,代表集合個數
@Digits (integer, fraction) 被註釋的元素必須是一個數字,其值必須在可接受的範圍內
@Past 被註釋的元素必須是一個過去的日期
@Future 被註釋的元素必須是一個將來的日期
@Email 被註釋的元素必須是電子郵箱地址
@Length(min=, max=) 被註釋的字符串的大小必須在指定的範圍內,必須爲數組或者字符串,若微數組則表示爲數組長度,字符串則表示爲字符串長度
@NotEmpty 被註釋的字符串的必須非空
@Range(min=, max=) 被註釋的元素必須在合適的範圍內
@NotBlank 被註釋的字符串的必須非空
@Pattern(regexp = ) 正則表達式校驗
@Valid 對象級聯校驗,即校驗對象中對象的屬性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章