簡單快速對@RequestParam聲明的參數(shù)作校驗操作
@RequestParam參數(shù)校驗
如下所示:
- 第一步、在springMVC注入org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
- 第二步、重寫校驗異常
- 第三步、在方法所在的類添加@Validated注解
- 第四步、在需要校驗的參數(shù)前面添加校驗規(guī)則
比如
接口入?yún)Ⅱ炞C(@RequestParam\@Valid\@Validated\@RequestBody)
今天了解了下接口入?yún)Ⅱ炞C問題:
1、
@RequestParam
:適用于Get請求且content-type為application/x-www-form-urlencoded@RequestBody
:適用于post請求且content-type為非application/x-www-form-urlencoded類型,一般為application/json
2、
(1)入?yún)锧RequestParam或@RequestBody時,不用加@valid和@validated;
(2)入?yún)锧NotNull時要在方法上加@valid或@validated,或者在類上加@Validated(@valid不能作用于類上),這樣@NotNull才能起作用。
@Valid @GetMapping("/exam-info") public Boolean getInfo(@NotNull(message="examId不能為空")Long examId){......}
(3)當入?yún)閷嶓w對象時,需要在方法上加@Valid或@Validated或者在參數(shù)前加@Valid或@Validated,或者在類上加
@Validated @Valid @GetMapping("/exam-info") public Boolean getInfo(User user){......} @GetMapping("/exam-info") public Boolean getInfo(@Valid User user){......} @Validated @GetMapping("/exam-info") public Boolean getInfo(User user){......} @GetMapping("/exam-info") public Boolean getInfo(@Validated User user){......} public Class User{ @NotNull("id不能為空") private Integer id; . . . }
(4)嵌套驗證
@valid作用于屬性上有嵌套驗證作用,@validated不能作用于屬性上,如下代碼在User類的屬性car上添加@valid注解,當傳參id為空時會報錯。
@GetMapping("/exam-info") public Boolean getInfo(@Valid User user){.....} @GetMapping("/exam-info") public Boolean getInfo(@Validated User user){.....} public class User{ @Valid @NotNull("car不能為空") private Car car; ........ } public class Car{ @NotNull("id不能為空") private Integer id; ........ }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
細數(shù)Java接口的概念、分類及與抽象類的區(qū)別
下面小編就為大家?guī)硪黄殧?shù)Java接口的概念、分類及與抽象類的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Spring?main方法中如何調用Dao層和Service層的方法
這篇文章主要介紹了Spring?main方法中調用Dao層和Service層的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12SpringBoot+MybatisPlus實現(xiàn)sharding-jdbc分庫分表的示例代碼
本文主要介紹了SpringBoot+MybatisPlus實現(xiàn)sharding-jdbc分庫分表的示例代碼,以分庫,分表,分庫分表三種方式來實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-03-03Java之InputStreamReader類的實現(xiàn)
這篇文章主要介紹了Java之InputStreamReader類的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11SpringBoot中@EnableAutoConfiguration注解的實現(xiàn)
Spring Boot@EnableAutoConfiguration是一個強大的工具,可以簡化配置過程,從而實現(xiàn)快速開發(fā),本文主要介紹了SpringBoot中@EnableAutoConfiguration注解的實現(xiàn),感興趣的可以了解一下2024-01-01Java if(boolean)和if(boolean=true)區(qū)別解析
這篇文章主要介紹了Java if(boolean)和if(boolean=true)區(qū)別解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-02-02Spring boot 數(shù)據(jù)庫連接斷線重連問題
這篇文章主要介紹了Spring boot 數(shù)據(jù)庫連接斷線重連問題,需要的朋友可以參考下2017-06-06