Spring mvc 如何在声纳不抱怨的情况下实现Spring ErrorController?

Spring mvc 如何在声纳不抱怨的情况下实现Spring ErrorController?,spring-mvc,sonarqube,Spring Mvc,Sonarqube,我已经实现了一个自定义错误控制器来显示用户自定义错误视图。我遵循了一个教程(再也找不到了),因此我的控制器如下所示: @Controller public class CustomErrorController implements ErrorController { @RequestMapping("/error") public String handleError(HttpServletRequest request) { Object status =

我已经实现了一个自定义错误控制器来显示用户自定义错误视图。我遵循了一个教程(再也找不到了),因此我的控制器如下所示:

@Controller
public class CustomErrorController implements ErrorController {

    @RequestMapping("/error")
    public String handleError(HttpServletRequest request) {
        Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);

        if (status != null) {
            Integer statusCode = Integer.valueOf(status.toString());

            if (statusCode == HttpStatus.FORBIDDEN.value()) {
                return "error/403";
            } else if (statusCode == HttpStatus.NOT_FOUND.value()) {
                return "error/404";
            } else if (statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) {
                return "error/500";
            }
        }
        return "error/default";
    }

    @Override
    public String getErrorPath() {
        return "/error";
    }

}
到目前为止还不错,但自2019年5月17日起,SonarQube抱怨称
@RequestMapping
没有方法。因此,我添加了我正在使用的4种方法:

@RequestMapping(value = "/error", method = { RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT,
            RequestMethod.DELETE })

但是声纳现在抱怨我有太多的方法。那么,实现符合以下要求的自定义ErrorController的正确方法是什么呢?

由于这是您的“默认错误页”路由,它将始终由于重定向而被获取,因此您可以安全地更改为
@GetMapping

遵循此操作并在web.xml中编写

<display-name>App Name </display-name>
<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
应用程序名称
500
/error500.jsp
404
/error404.jsp

简单--//nosonar;P:P@Antoniossss是的,作为最后的手段我会这么做,但是我不喜欢任何一行代码或注释只是为了让验证工具开心。但是你想把代码颠倒过来让验证工具开心吗?@antoniosss大多数规则都是有意义的,我认为如果代码没有导致完全重构,那么调整代码是值得的。哦,我没想到这一点。因此,即使帖子中有错误,错误控制器也将作为GET?Ye执行,因为您将获得/error的重定向,这将由浏览器使用GET完成。我没有web.xml,我使用的是Spring Boot和application.properties。所有操作都是以代码而不是xml完成的,但谢谢。