首页 > 其他分享 >参数校验问题

参数校验问题

时间:2023-09-19 17:44:22浏览次数:26  
标签:return 校验 private 问题 参数 result public



所需依赖

点击查看代码
<!-- 校验注解实现-->
        <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>8.0.0.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator-annotation-processor -->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator-annotation-processor</artifactId>
            <version>8.0.0.Final</version>
        </dependency>

实体类

点击查看代码
//参数校验   为每个属性附上 相关 校验注解
@Data
public class User1 {
    @NotBlank  //字符串不能为空
    private String name;
    @Length(min = 6, max = 20) //长度在 6-20之间
    private String password;
    @Email  //必须为email 格式
    private String email;
    @Past  //必须是过去时间
    private Date birthday;
    @Min(value = 1)  //目标值大于1
    private int age;
}

体验

@RestController
@RequestMapping("user")
public class CheckUser {

    /**
     * TODO:接收用户信息 并进行参数校验
     *  步骤1: 实体类属性添加校验注解
     *  步骤2: handler(@validated实体类 对象) @Validated 代表应用校验注解!
     *  细节:  param | json 校验注解都有效果
     *         json参数 - @RequestBody
     *
     *   如果,不符合校验规则,直接向前端抛出异常!
     *  接收错误绑定信息!自定义返回结果!  约定: 参数错误 -》 {code:400}  -》前端
     *  捕捉错误绑定错误信息:
     *     1. handler(校验对象,BindingResult result) 要求: bindingResult必须紧挨着 校验对象
     *     2. bindingresult获取绑定错误
     *
     * @param user  接收到的用户数据
     * @param result 获取参数异常信息
     * @return
     */
    @PostMapping("check")
    public Object check(@RequestBody @Validated User1 user , BindingResult result){
        if (result.hasErrors()){
            //存在 参数错误问题  返回自定义信息
            Map map = new HashMap();
            map.put("code",400);
            map.put("msg","参数有误");
            return map;
        }
        return user;
    }

    @RequestMapping("list")
    public Object list(@RequestParam List h){
        System.out.println("list = " + h);
        return h;
    }
}

标签:return,校验,private,问题,参数,result,public
From: https://www.cnblogs.com/weifengfuxiufa/p/17715306.html

相关文章

  • 天视通等小众冷门摄像机接入安防监控EasyCVR平台的常见兼容问题及解决方法
    众所周知,视频监控系统EasyCVR安防视频综合管理平台支持多类型设备、多协议方式接入,包括市场主流标准协议国标GB28181、RTMP、RTSP/Onvif协议等,以及厂家私有协议,如海康SDK、大华SDK、海康Ehome等。平台可兼容市面上绝大多数品牌的视频源设备,对外可分发RTSP、RTMP、FLV、HLS、WebRTC......
  • ScannerException: while scanning for the next token found character ‘@‘ 问题
    1.今天运行程序,突然报错,显示 ScannerException:whilescanningforthenexttokenfoundcharacter‘@‘问题,上网搜索,有好多原因,最简单的解决方法是刷新maven,后来就好使了。其他原因可参考博客:ScannerException:whilescanningforthenexttokenfoundcharacter‘@‘问......
  • 记一个mysql死锁问题,在并发情况下导致的数据库更新超时
    1、问题:在执行mysql数据库更新操作,根据条件更新其中一列的值,具体的更新语句类似如下:updatepeoplesetname='zhangsan'whereid=1a andage=24;但是在Java中使用parallelStream().foreach(a->{//sql更新操作})并发流就会出现问题,导致有的更新会失败,报如下错误:M......
  • Java:开发遇见的问题
    mysql插入emoji失败解决链接:https://blog.csdn.net/gentlu/article/details/83783901注:utfmb4是兼容历史utf8编码数据的,所以需要设置成utfmb4,不用担心历史数据问题;如果数据库、表、字段已经是utfmb4还是插入失败,那么在应用数据源层面加配置解决......
  • 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意
    为了解答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”这个问题,也为了能够便于大家对正则表达式有一个更为综合和深刻的认识,我将一些关键点和容易犯糊涂的地方再系统总结一下。 总结1:附件参数g的用法 表达式加上参数g之后,表明可以进行全局匹配,注意这里“可以”的含义。我们详......
  • 解决Logic Apps terraform部署时大小写问题
    今天来分享一个实际工作中遇到的一个问题,首先来描述下场景和问题,我们之前在使用terrafrom来部署一些logicapps,具体部署的方法之后准备单独写博客来分享下,其实也是挺值得谈谈的这次先来简单分析下遇到的问题,logicapps里其实包含了很多子组件,包括trigger,action等等,都用terraform......
  • 【原创】思科路由器时间问题
        大家好,我是你们的龙少一郎兄台了。许久,没有发表相关内容来犒劳大家了,今天即兴给大家来篇他人遇到问题后为其解疑答惑的一些小小算是总结吧。大神,飘过;小白,可以路过!在思科路由器中我们经常遇到一些关于时间的问题,比如经常有人问到的,我怎么看系统运行时间、怎么看现在的......
  • 解决安装wsl时候报错的问题: WslRegisterDistribution failed with error: 0x800701bc
    在Win10或者Win11上安装wsl的时候,可能会遇到如下的错误信息:Error:0x800701bcWSL2??????????????????https://aka.ms/wsl2kernelPressanykeytocontinue...  这个是由于系统内置的WSL内核过低导致的,可以到如下的网址下载升级包:https://learn.microsoft.com/zh-cn......
  • 洛谷 P1862 输油管道问题
    洛谷\(P1862\)输油管道问题如果只有一口井,那么显然是越近越好。如果有两口井,那么显然是有以下三种情况:两口井都在主管道北边,那么这个时候的两个连接管道的长度和肯定大于两口井的\(Y\)坐标之差。两口井都在主管道南边,和情况1是一样的两口井,一个在主管道南边,一个在主......
  • tus java client 使用以及问题说明
    代码来自官方参考,支持在使用的时候发现了一些问题记录下参考代码App.javapackageorg.example; importio.tus.java.client.*; importjava.io.File;importjava.io.IOException;importjava.net.URL;importjava.util.HashMap;importjava.u......