摘要:添加依賴,如果使用了,則不需要引用任何依賴,因為包中已經包含了依賴在類的屬性上加上對應的注解核查結果中文不能為空檢查結果中文級聯校驗不能超過個嫌疑人集合被注釋的元素必須為被注釋的元素必須不為被注釋的元素必須為被注釋的元素必須為被
1.添加 Hibernate-Validator 依賴,如果使用了springboot,則不需要引用任何依賴,因為spring-boot-starter-web包中已經包含了Hibernate-Validator 依賴
org.hibernate hibernate-validator 6.0.7.Final
2.在Vo類的屬性上加上對應的注解
import javax.validation.constraints.NotBlank; public class FeedbackVo { @NotBlank(message = "核查結果中文不能為空") @ApiModelProperty(value="檢查結果中文") private String cresults; @Valid //級聯校驗 @Size(max = 2,message = "不能超過12個") @ApiModelProperty(value="嫌疑人(集合)") private Listsuspects = new ArrayList<>(); get/set... }
@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(regex=,flag=) 被注釋的元素必須符合指定的正則表達式
Hibernate Validator 附加的 constraint
@NotBlank(message =) 驗證字符串非null,且長度必須大于0
@Email 被注釋的元素必須是電子郵箱地址
@Length(min=,max=) 被注釋的字符串的大小必須在指定的范圍內
@NotEmpty 被注釋的字符串的必須非空
@Range(min=,max=,message=) 被注釋的元素必須在合適的范圍內
3.在Controller中加上注解
@RestController @Validated @RequestMapping(path="/api/v1/feedback") @Api(value="階段反饋controller",tags={"階段反饋操作接口"}) public class FeedBackController { @ApiOperation(value="保存階段反饋") @PostMapping @SystemControllerLog(descrption="保存階段反饋",operator=OperatorType.create) @ResponseStatus(code=HttpStatus.CREATED) public void addFeedback(@Validated(value = Groups.Add.class)@RequestBody @Valid FeedbackVo feedbackVo, BindingResult bindingResult) throws Exception { // 參數校驗 if (bindingResult.hasErrors()) { String messages = bindingResult.getAllErrors() .stream() .map(ObjectError::getDefaultMessage) .reduce((m1, m2) -> m1 + ";" + m2) .orElse("參數輸入有誤!"); throw new IllegalArgumentException(messages);} feedBackService.saveFeedback(feedbackVo); } }
對BindingResult的深入解析:如果在使用接口返回信息的時候,可以直接拿到bindingResult中的錯誤信息
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75451.html
摘要:在開發服務器端代碼時,我們會遇到對外部傳來的參數合法性進行驗證,而提供了一些常用的參數校驗注解,我們可以拿來使用。 在開發JAVA服務器端代碼時,我們會遇到對外部傳來的參數合法性進行驗證,而hibernate-validator提供了一些常用的參數校驗注解,我們可以拿來使用。1.maven中引入hibernate-validator對應的jar: org.hibernate ...
摘要:代碼地址簡介是項目中的一個數據校驗框架,是的參考實現,除了提供了規范中所有內置的實現,還有一些附加的。使用能夠將數據校驗從業務代碼中脫離出來,增加代碼可讀性,同時也讓數據校驗變得更加方便簡單。 代碼地址 https://github.com/wheel-orga... 簡介 hibernate-validator是Hibernate項目中的一個數據校驗框架,是Bean Validati...
摘要:所以就有今天的話題利用注解對進行校驗。利用注解對進行校驗,主要是利用框架,實現了的接口關于校驗的接口,直接使用非常方便,省時省力。 最近寫業務代碼,因為頁面復雜,導致對應的Bean屬性非常多,而產品大佬又提出各種校驗要求。 emmmmmm......如果寫if條件來校驗,那簡直是又臭又長。 所以就有今天的話題——利用注解對Bean進行校驗。 利用注解對Bean進行校驗,主要是利用hib...
摘要:時間年月日星期三說明使用規范校驗接口請求參數源碼第一章理論簡介背景介紹如今互聯網項目都采用接口形式進行開發。該規范定義了一個元數據模型,默認的元數據來源是注解。 時間:2017年11月08日星期三說明:使用JSR303規范校驗http接口請求參數 源碼:https://github.com/zccodere/s... 第一章:理論簡介 1-1 背景介紹 如今互聯網項目都采用HTTP接口...
閱讀 3834·2021-09-06 15:00
閱讀 2171·2019-08-30 15:53
閱讀 3277·2019-08-23 16:44
閱讀 944·2019-08-23 15:19
閱讀 1391·2019-08-23 12:27
閱讀 4187·2019-08-23 11:30
閱讀 581·2019-08-23 10:33
閱讀 369·2019-08-22 16:05