解決get請求入?yún)NotNull驗(yàn)證不生效問題
get請求@NotNull驗(yàn)證不生效

解決辦法
在該方法的controller類上加@Validated

驗(yàn)證信息生效了

使用@NotEmpty,@NotBlank,@NotNull及@Valid注解校驗(yàn)請求參數(shù)
@NotEmpty,@NotBlank,@NotNull 這些注解所在的jar包路徑在javax.validation.constraints 的包下面,這個包下面也封裝了其他的注解

這里列舉一下常用的注解
并做簡單介紹,其余還要在使用的時候慢慢挖掘
//被注釋的元素必須為null @Null //被注釋的元素不能為null @NotNull //被注釋的元素必須為true @AssertTrue //被注釋的元素必須為false @AssertFalse //被注釋的元素必須是一個數(shù)字,其值必須大于等于指定的最小值 @Min(value) //被注釋的元素必須是一個數(shù)字,其值必須小于等于指定的最大值 @Max(value) //被注釋的元素必須是一個數(shù)字,其值必須大于等于指定的最小值 @DecimalMin(value) //被注釋的元素必須是一個數(shù)字,其值必須小于等于指定的最大值 @DecimalMax(value) //被注釋的元素的大小必須在指定的范圍內(nèi)。 @Size(max,min) //被注釋的元素必須是一個數(shù)字,其值必須在可接受的范圍內(nèi) @Digits(integer,fraction) //被注釋的元素必須是一個過去的日期 @Past //被注釋的元素必須是一個將來的日期 @Future //被注釋的元素必須符合指定的正則表達(dá)式。 @Pattern(value) //被注釋的元素必須是電子郵件地址 @Email //被注釋的字符串的大小必須在指定的范圍內(nèi) @Length //被注釋的字符串必須非空 @NotEmpty //被注釋的元素必須在合適的范圍內(nèi) @Range
這些注解用于加在java的實(shí)體類屬性字段上,在進(jìn)行請求或請求的時候會根據(jù)字段的注解進(jìn)行對應(yīng)的校驗(yàn),簡化校驗(yàn)相關(guān)的代碼。
當(dāng)校驗(yàn)不同過時,會返回對應(yīng)的message描述
在前端請求解析到 controller 的時候,可使用 @valid 注解,開啟校驗(yàn),以下為使用的示例:
@PostMapping("/get/user/course")
public UserCourseInfo getUserCourseInfo(@Valid @RequestBody CreateUserRequest request) {
return userService.getUserCourseInfo(request);
}
CreateUserRequest 實(shí)體類并添加校驗(yàn)注解
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* <h1>創(chuàng)建用戶請求對象定義</h1>
* Created by Qinyi.
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CreateUserRequest {
/** 用戶名 */
@NotNull(message = "不可為空")
@Length(min=20,max=30,message = "長度在20到30")
private String username;
/** 郵箱 */
@Email
@NotBlank
private String email;
}
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot最簡單的定時任務(wù)@Scheduler的使用及解讀
這篇文章主要介紹了SpringBoot最簡單的定時任務(wù)@Scheduler的使用及解讀,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
深入解析java HashMap實(shí)現(xiàn)原理
這篇文章主要介紹了深入解析java HashMap實(shí)現(xiàn)原理的相關(guān)資料,需要的朋友可以參考下2015-09-09
java雙向循環(huán)鏈表的實(shí)現(xiàn)代碼
這篇文章介紹了java雙向循環(huán)鏈表的實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2013-09-09
詳解Spring MVC的異步模式(高性能的關(guān)鍵)
本篇文章主要介紹了詳解Spring MVC的異步模式(高性能的關(guān)鍵),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
JVM自定義類加載器在代碼擴(kuò)展性實(shí)踐分享
這篇文章主要介紹了JVM自定義類加載器在代碼擴(kuò)展性實(shí)踐分享,一個類型從被加載到虛擬機(jī)內(nèi)存中開始,到卸載出內(nèi)存為止,它的整個生命周期將會經(jīng)歷加載、驗(yàn)證、準(zhǔn)備、解析、初始化 、使用和卸載七個階段,其中驗(yàn)證、準(zhǔn)備、解析三個部分統(tǒng)稱為連接2022-06-06
SpringBoot之HandlerInterceptor攔截器的使用詳解
這篇文章主要介紹了SpringBoot之HandlerInterceptor攔截器的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

