java - 如何在 Spring Boot 中捕获错误请求
问题描述
我正在创建一个简单的 REST 服务,我可以在其中对用户进行 crud 操作。
为了创建用户,我编写了以下函数:
public @ResponseBody ResponseEntity<User> createUser(@RequestParam String name, @RequestParam String email, @RequestParam String password, @RequestParam String platform, @RequestParam String platformID, @RequestParam String wishlist) {
if(name != "" && email != "" && password != "" && platform != "" && platformID != "" && wishlist != "") {
User user = new User(name, email, password, platform, platformID, wishlist);
User result = userRepository.save(user);
return new ResponseEntity<User>(result, HttpStatus.CREATED);
}
return new ResponseEntity("The user can not be added because it is not complete", HttpStatus.CONFLICT);
}
如您所见,我在请求参数中提供了用户信息。我想拥有它,以便如果请求的 URL 中缺少参数,则执行函数的底线。但是,当缺少参数时,我会自动返回一个 Bad Request http 错误。有人知道如何捕捉这样的错误或更改其中的文本吗?
解决方案
默认情况下@RequestParam
是必需的(属性required = true
)。你可以做这样的事情@RequestParam(required = false)
更新 1:我还注意到您使用!=
比较字符串。你必须使用类似的东西user != null && !user.eqauls("")
推荐阅读
- java - 在 Eclipse Collections 中使用软值映射
- javascript - 是否可以将变量的值添加到元素的类中?
- reactjs - 试图 npm 启动一个反应应用程序,得到这个错误。该应用程序以前工作过
- sql - 如何在 SQL/LookerML 中测量一组天的平均计数,每个天都有自己的数据点
- java - 在 Java 中存储排序数组,不理解 .clone() Java
- javascript - 将这个 compose 函数传递给 Javascripts reduce 的执行流程是什么?
- python - 使用 split() 遍历字符串中的单词
- java - iText - 如何获取用于打印的 PDF 二进制文件
- c++ - 使用 ProtocolBuffers 时,有没有办法为生成的 C++ 代码指定输出导入?
- http-status-code-404 - 良好的 reCAPTCHA 下载音频会给出 404