摘要:添加依賴,如果使用了,則不需要引用任何依賴,因?yàn)榘幸呀?jīng)包含了依賴在類的屬性上加上對(duì)應(yīng)的注解核查結(jié)果中文不能為空檢查結(jié)果中文級(jí)聯(lián)校驗(yàn)不能超過(guò)個(gè)嫌疑人集合被注釋的元素必須為被注釋的元素必須不為被注釋的元素必須為被注釋的元素必須為被
1.添加 Hibernate-Validator 依賴,如果使用了springboot,則不需要引用任何依賴,因?yàn)閟pring-boot-starter-web包中已經(jīng)包含了Hibernate-Validator 依賴
org.hibernate hibernate-validator 6.0.7.Final
2.在Vo類的屬性上加上對(duì)應(yīng)的注解
import javax.validation.constraints.NotBlank; public class FeedbackVo { @NotBlank(message = "核查結(jié)果中文不能為空") @ApiModelProperty(value="檢查結(jié)果中文") private String cresults; @Valid //級(jí)聯(lián)校驗(yàn) @Size(max = 2,message = "不能超過(guò)12個(gè)") @ApiModelProperty(value="嫌疑人(集合)") private Listsuspects = new ArrayList<>(); get/set... }
@Null 被注釋的元素必須為 null
@NotNull 被注釋的元素必須不為 null
@AssertTrue 被注釋的元素必須為 true
@AssertFalse 被注釋的元素必須為 false
@Min(value) 被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值
@Max(value) 被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值
@DecimalMin(value) 被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值
@DecimalMax(value) 被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值
@Size(max=, min=) 被注釋的元素的大小必須在指定的范圍內(nèi)
@Digits (integer, fraction) 被注釋的元素必須是一個(gè)數(shù)字,其值必須在可接受的范圍內(nèi)
@Past 被注釋的元素必須是一個(gè)過(guò)去的日期
@Future 被注釋的元素必須是一個(gè)將來(lái)的日期
@Pattern(regex=,flag=) 被注釋的元素必須符合指定的正則表達(dá)式
Hibernate Validator 附加的 constraint
@NotBlank(message =) 驗(yàn)證字符串非null,且長(zhǎng)度必須大于0
@Email 被注釋的元素必須是電子郵箱地址
@Length(min=,max=) 被注釋的字符串的大小必須在指定的范圍內(nèi)
@NotEmpty 被注釋的字符串的必須非空
@Range(min=,max=,message=) 被注釋的元素必須在合適的范圍內(nèi)
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 { // 參數(shù)校驗(yàn) if (bindingResult.hasErrors()) { String messages = bindingResult.getAllErrors() .stream() .map(ObjectError::getDefaultMessage) .reduce((m1, m2) -> m1 + ";" + m2) .orElse("參數(shù)輸入有誤!"); throw new IllegalArgumentException(messages);} feedBackService.saveFeedback(feedbackVo); } }
對(duì)BindingResult的深入解析:如果在使用接口返回信息的時(shí)候,可以直接拿到bindingResult中的錯(cuò)誤信息
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/75451.html
摘要:在開(kāi)發(fā)服務(wù)器端代碼時(shí),我們會(huì)遇到對(duì)外部傳來(lái)的參數(shù)合法性進(jìn)行驗(yàn)證,而提供了一些常用的參數(shù)校驗(yàn)注解,我們可以拿來(lái)使用。 在開(kāi)發(fā)JAVA服務(wù)器端代碼時(shí),我們會(huì)遇到對(duì)外部傳來(lái)的參數(shù)合法性進(jìn)行驗(yàn)證,而hibernate-validator提供了一些常用的參數(shù)校驗(yàn)注解,我們可以拿來(lái)使用。1.maven中引入hibernate-validator對(duì)應(yīng)的jar: org.hibernate ...
摘要:代碼地址簡(jiǎn)介是項(xiàng)目中的一個(gè)數(shù)據(jù)校驗(yàn)框架,是的參考實(shí)現(xiàn),除了提供了規(guī)范中所有內(nèi)置的實(shí)現(xiàn),還有一些附加的。使用能夠?qū)?shù)據(jù)校驗(yàn)從業(yè)務(wù)代碼中脫離出來(lái),增加代碼可讀性,同時(shí)也讓數(shù)據(jù)校驗(yàn)變得更加方便簡(jiǎn)單。 代碼地址 https://github.com/wheel-orga... 簡(jiǎn)介 hibernate-validator是Hibernate項(xiàng)目中的一個(gè)數(shù)據(jù)校驗(yàn)框架,是Bean Validati...
摘要:所以就有今天的話題利用注解對(duì)進(jìn)行校驗(yàn)。利用注解對(duì)進(jìn)行校驗(yàn),主要是利用框架,實(shí)現(xiàn)了的接口關(guān)于校驗(yàn)的接口,直接使用非常方便,省時(shí)省力。 最近寫業(yè)務(wù)代碼,因?yàn)轫?yè)面復(fù)雜,導(dǎo)致對(duì)應(yīng)的Bean屬性非常多,而產(chǎn)品大佬又提出各種校驗(yàn)要求。 emmmmmm......如果寫if條件來(lái)校驗(yàn),那簡(jiǎn)直是又臭又長(zhǎng)。 所以就有今天的話題——利用注解對(duì)Bean進(jìn)行校驗(yàn)。 利用注解對(duì)Bean進(jìn)行校驗(yàn),主要是利用hib...
摘要:時(shí)間年月日星期三說(shuō)明使用規(guī)范校驗(yàn)接口請(qǐng)求參數(shù)源碼第一章理論簡(jiǎn)介背景介紹如今互聯(lián)網(wǎng)項(xiàng)目都采用接口形式進(jìn)行開(kāi)發(fā)。該規(guī)范定義了一個(gè)元數(shù)據(jù)模型,默認(rèn)的元數(shù)據(jù)來(lái)源是注解。 時(shí)間:2017年11月08日星期三說(shuō)明:使用JSR303規(guī)范校驗(yàn)http接口請(qǐng)求參數(shù) 源碼:https://github.com/zccodere/s... 第一章:理論簡(jiǎn)介 1-1 背景介紹 如今互聯(lián)網(wǎng)項(xiàng)目都采用HTTP接口...
閱讀 3856·2021-09-06 15:00
閱讀 2184·2019-08-30 15:53
閱讀 3292·2019-08-23 16:44
閱讀 953·2019-08-23 15:19
閱讀 1405·2019-08-23 12:27
閱讀 4203·2019-08-23 11:30
閱讀 596·2019-08-23 10:33
閱讀 378·2019-08-22 16:05