kotlin使用spring mvc(六)

kotlin使用spring mvc(六)

使用@RestControllerAdvice扩展参数验证

在上一节中我看可以看到参数验证返回的错误信息如下

{
	"timestamp": "2018-10-25T06:44:31.196+0000",
	"status": 400,
	"error": "Bad Request",
	"errors": [{
		"codes": ["NotEmpty.passenger.name", "NotEmpty.name", "NotEmpty.java.lang.String", "NotEmpty"],
		"arguments": [{
			"codes": ["passenger.name", "name"],
			"arguments": null,
			"defaultMessage": "name",
			"code": "name"
		}],
		"defaultMessage": "用户名不能为空",
		"objectName": "passenger",
		"field": "name",
		"rejectedValue": "",
		"bindingFailure": false,
		"code": "NotEmpty"
	}],
	"message": "Validation failed for object='passenger'. Error count: 1",
	"path": "/p/add"
}

事实上我们想要的只是

{"data":null,"succes":false,"msg":"用户名不能为空"}

那么我们就应该捕捉到参数验证异常之后,返回CommonResult对象

@RestControllerAdvice
class GlobalExcpetionHandler{
    //验证参数
    @ExceptionHandler(value = [MethodArgumentNotValidException::class])
    fun validParameters(e:MethodArgumentNotValidException):CommonResult<Any>{
        return CommonResult(null,false,e.bindingResult.allErrors.firstOrNull()?.defaultMessage ?: "")
    }
}

再次post请求过来,发现我们设置的捕捉异常已经生效了

转载于:https://my.oschina.net/weidedong/blog/2252419

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101351.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html表单代码有哪些,HTML常用代码有哪些「建议收藏」

    html表单代码有哪些,HTML常用代码有哪些「建议收藏」HTML常用代码有哪些?网页的描述,关键字,作者及其他元素:metaname=””content=””客户端脚本:window.alert(”);文档的样式信息:引进图片:imgsrc换行:br超级链接:aherf新的页面打开:target=”_blank”无序列表:有序列表:表格的页眉:thead表格的主题:tbody定义表格的页脚:tfood定义表格:table边框:border单元…

    2022年8月11日
    6
  • MPLS 虚拟专用网络 Hub and Spoke实验

    MPLS 虚拟专用网络 Hub and Spoke实验

    2021年4月12日
    964
  • resharper激活码(最新序列号破解)

    resharper激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    283
  • 数仓分层简介(实时数仓架构)

    数仓1.数仓分层好处:复杂问题简单化;减少重复开发;隔离原始数据。2.数仓分层具体实现ODS(OperationDataStore)层:原始数据层,存原始数据,直接加载原始日志、数据DWD(DataWarehouseDetail)层:明细数据层也有叫DWI层,结构和粒度与原始表保持一致,对ODS层数据进行清洗(去除空值、脏数据、超过极限范围的数据、行式存储转列式存储、改压缩格式)DWS(DataWarehouseService)层:服务数据层,以DWD为基础进行轻度汇总。比如:用户当日

    2022年4月17日
    80
  • C语言经典算法(七)——递归实现阶乘算法的两种方法「建议收藏」

    C语言经典算法(七)——递归实现阶乘算法的两种方法「建议收藏」今后继续整理算法并写出自己的理解和备注。C++实现的:递归实现阶乘算法N!1、递归实现n!题目描述:输入n值,求解n的阶乘方法一:累乘法方法二:递归法源码:一、递归实现n!1、累乘法#includeusingnamespacestd;#defineULunsignedlongULFactorial(ULn){int

    2022年7月24日
    4
  • android bindservice方法,Android bindservice方法返回false

    android bindservice方法,Android bindservice方法返回false我想从另一个类(BaseExpandableListAdapter)的活动中调用一个方法。活动中的方法启动服务并调用bindService(,,)方法。但是,bindService方法总是返回false。我查了其他类似的帖子,但没有一个解决了我的问题。任何评论非常感谢。Androidbindservice方法返回false这里是BaseExpendableListAdapter类中,我调用该方法…

    2022年5月27日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号