程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了HTTP 400的Spring MVC自定义消息大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决http 400的Spring MVC自定义消息?

开发过程中遇到http 400的Spring MVC自定义消息的问题如何解决?下面主要结合日常开发的经验,给出你关于http 400的Spring MVC自定义消息的解决方法建议,希望对你解决http 400的Spring MVC自定义消息有所启发或帮助;

您真正需要的是MissingServletrequestParameterException的全局处理程序,当缺少请求参数时,Spring会抛出该全局处理程序。解决此问题的最简单方法是使用COntrollerAdvice,它将对所有控制器进行处理。

import org.springframework.web.bind.MissingServletrequestParameterException;

@ControllerAdvice
class MissingServletrequestParameterExceptionHandler {
    @ExceptionHandler(MissingServletrequestParameterException.class)
    @ResponseBody
    @ResponseStatus(httpStatus.bAD_requEST)
    public String handleMissingParameter() {
        return "Your custom result";
    }
}

如果只想为特定控制器隐藏缺少的参数消息,则只需将handleMissingParameter方法移至该控制器,而不创建ControllerAdvice。

解决方法

我下面有几种SprigMVC方法,返回ModelAndView或Responsebody。当用户向这些网址请求缺少必需参数的请求时,他们自然会收到消息
“不存在必需的字符串参数’id’”

从安全角度来看,我想向用户 隐藏此详细描述消息
。因此,黑客不容易知道丢失的参数,并且会在没有任何描述的情况下得到400错误。这是可以通过spring配置/ Spring
Security实现的,还是我必须手动重构所有方法才能以某种方式返回自定义消息。

@requestMapping(value = "/payment",method = requestMethod.GET)
public ModelAndView getReponse(@requestParam(value = "id",required = truE)) {

    return model;
}

@requestMapping(value = "/status",method = requestMethod.GET)
public @ResponseBody String getStatus(@requestParam(value = "id",required = truE) String id) {

    return "String";
}

大佬总结

以上是大佬教程为你收集整理的HTTP 400的Spring MVC自定义消息全部内容,希望文章能够帮你解决HTTP 400的Spring MVC自定义消息所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。