RuoYi-Vue触发参数验证异常示例

目录

一、前端触发参数校验异常

1、触发方式&前端现象

1、后端现象

二、源码分析

1、前端代码

2、后端代码

3、流程分析

三:自定义异常


一、前端触发参数校验异常

1、触发方式&前端现象

修改岗位名超过50个字符

1、后端现象

错误语句的基本信息

17:51:40.411 [http-nio-8080-exec-36] ERROR c.r.f.w.e.GlobalExceptionHandler - [handleMethodArgumentNotValidException,101] - Validation failed for argument [0] in public com.ruoyi.common.core.domain.AjaxResult com.ruoyi.web.controller.system.SysPostController.edit(com.ruoyi.system.domain.SysPost): [Field error in object 'sysPost' on field 'postName': rejected value [董事长ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss]; codes [Size.sysPost.postName,Size.postName,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [sysPost.postName,postName]; arguments []; default message [postName],50,0]; default message [岗位名称长度不能超过50个字符]]

二、源码分析

1、前端代码

岗位密码不能为空

2、后端代码

在后端中,如果两个限制都不满足,则触发异常处理机制,返回code:500给前端

异常处理方法:

3、流程分析

(1)将岗位名称的长度修改长度超过50个字符,确认后会请求URI:/system/post

(2)后端接受到SysRole的参数SysPost不符合条件,超过最大字符数,抛出异常类MethodArgumentNotValidExceptio

(3)异常被全局异常处理器捕获,返回message给前端,错误码为500

(4)前端路由截取到错误码500,显示出错误码为500的message内容

三:自定义异常

在ruoyi-framework目录下的pom.xml中引入验证validation依赖

   <!--        引入验证validation依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

自定义NotNumber校验器,实现ConstraintValidator接口

新增NotNumber注解,设置自定义校验器NotNumberValidator.class

在实体类中使用自定义的NotNumber注解

前端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值