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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mac删除文件快捷键[通俗易懂]

    1.选中并放入垃圾桶#command+delete//外接键盘的话:command+BackSpace2.清空垃圾桶#command+delete+shift//外接键盘的话:command+BackSpace+shift 

    2022年4月12日
    147
  • idea tomcat插件下载_idea导入tomcat

    idea tomcat插件下载_idea导入tomcat因为昨天已经下载了最新本部Tomcat,知识因为和老师的版本有点出入,于是我百度了方法。这里小结一下。idea下载tomcat配置tomcat图文教程有了昨天的基础之后,今天很快就下好了。我这里以WINDOWS764位;下载9.0.13本部为例。首先确保本机装好了JDK,并配置了环境变量。然后百度搜TomcaT官网,或者直接收官网网站:http://tomc…

    2022年10月17日
    4
  • osip和mysql_osip2/eXosip2调试笔记

    osip和mysql_osip2/eXosip2调试笔记软件版本:libosip2-3.3.0.tar.gzlibeXosip2-3.3.0.tar.gz./configure–prefix=/opt/sip/target–disable-staticmakemakeinstall测试代码:代码来源:http://blog.csdn.net/bat603/archive/2006/11/15/1386277.aspx1、UAS…

    2022年6月24日
    31
  • 调用谷歌翻译接口_api如何调用

    调用谷歌翻译接口_api如何调用在平时使用谷歌翻译的过程中,经常会遇到需要批量翻译大量文本的情景,这种时候需要调用谷歌翻译的API首先可以使用python库googletranspipinstallgoogletrans#使用方法fromgoogletransimportTranslatortranslator=Translator(service_urls=[‘translate.google.cn’])sour…

    2025年8月18日
    4
  • 移动APP开发环境搭建(新手)「建议收藏」

    移动APP开发环境搭建(新手)「建议收藏」移动APP开发环境配置(新手搭建)涉及到的配置工具 STS(eclipseidea一样的开发工具) javajdk:是Java语言开发工具包,JDK是整个JAVA的核心,包括了Java运行环境 ant:Ant是Java的生成工具,用来编译、生成;跨平台, Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目…

    2022年5月6日
    57
  • ubantu 搭建我的世界java服务器 spigot核心

    ubantu 搭建我的世界java服务器 spigot核心搭建一个minecraftjava版服务器

    2022年5月24日
    39

发表回复

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

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