spring-mvc - 如何在 Sonar 不抱怨的情况下实现 Spring ErrorController?
问题描述
我已经实现了一个自定义错误控制器来显示用户自定义错误视图。我按照教程(找不到了),所以我的控制器看起来像这样:
@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 })
但是Sonar现在抱怨我的方法太多了。那么实现符合此 Sonar 规则的自定义 ErrorController 的正确方法是什么?
解决方案
由于这是您的“默认错误页面”路由,因此由于重定向,它将始终是 GET,因此您可以安全地更改为@GetMapping
.
推荐阅读
- javascript - 如何从js中的文本字段中获取整数?
- arrays - 将 Matlab 网格转换为向量
- docker - VSCode“无法打开
无法读取文件” - android - Kotlin android 数据绑定问题在应用程序中失败:kaptDebugKotlin
- python - 如何使用python从sql表中获取多个结果
- c# - OpenXML SDK C#:如何将书签内容从 1 个单词文件复制到另一个单词文件
- vb.net - 父/子组合框
- reactjs - 你如何在 React 中进行 axios 错误处理(用于用户身份验证)?
- java - 使用 Java 从 td href 元素中提取链接
- postgresql - Big Sur 失败时的 PostgreSQL 安装