解决get请求入参@NotNull验证不生效问题

网友投稿 2105 2022-12-04

解决get请求入参@NotNull验证不生效问题

解决get请求入参@NotNull验证不生效问题

目录get请求@NotNull验证不生效解决办法使用@NotEmpty,@NotBlank,@NotNull及@Valid注解校验请求参数这里列举一下常用的注解当校验oRtXFcVmL不同过时,会返回对应的message描述CreateUserRequest 实体类并添加校验注解

get请求@NotNull验证不生效

解决办法

在该方法的controller类上加@Validated

验证信息生效了

使用@NotEmpty,@NotBlank,@NotNull及@Valid注解校验请求参数

@NotEmpty,@NotBlank,@NotNull 这些注解所在的jar包路径在javax.validation.constraints 的包下面,这个包下面也封装了其他的注解

这里列举一下常用的注解

并做简单介绍,其余还要在使用的时候慢慢挖掘

//被注释的元素必须为null

@Null

//被注释的元素不能为null

@NotNull

//被注释的元素必须为true

@AssertTrue

//被注释的元素必须为false

@AssertFalse

//被注释的元素必须是一个数字,其值必须大于等于指定的最小值

@Min(value)

//被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@Max(value)

//被注释的元素必须是一个数字,其值必须大于等于指定的最小值

@DecimalMin(value)

//被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@DecimalMax(value)

//被注释的元素的大小必须在指定的范围内。

@Size(max,min)

//被注释的元素必须是一个数字,其值必须在可接受的范围内

@Digits(integer,fraction)

//被注释的元素必须是一个过去的日期

@Past

//被注释的元素必须是一个将来的日期

@Future

//被注释的元素必须符合指定的正则表达式。

@Pattern(value)

//被注释的元素必须是电子邮件地址

@Email

//被注释的字符串的大小必须在指定的范围内

@Length

//被注释的字符串必须非空

@NotEmpty

//被注释的元素必须在合适的范围内

@Range

这些注解用于加在java的实体类属性字段上,在进行请求或请求的时候会根据字段的注解进行对应的校验,简化校验相关的代码。

当校验不同过时,会返回对应的message描述

在前端请求解析到 controller 的时候,可使用 @valid 注解,开启校验,以下为使用的示例

@PostMapping("/get/user/course")

public UserCourseInfo getUserCourseInfo(@Valid @RequestBody CreateUserRequest request) {

rhttp://eturn userService.getUserCourseInfo(request);

}

CreateUserRequest 实体类并添加校验注解

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;

/**

*

* 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;

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于MyBatis的parameterType传入参数类型
下一篇:Mybatis配置映射文件中parameterType的用法讲解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~