java - @GetMapping 返回列表为空的字符串信息
问题描述
有时可能会发生,在数据库中什么都没有,方法 .findAll() 没有可显示的内容并返回空主体。我知道我有这个函数“列表”的返回类型,我不能直接返回字符串,但是如果列表为空,我如何发送响应正文作为字符串或 JSON,让用户知道?我想向接收者提供数据库为空的信息,这样他就清楚了。
类注释是
@RestController
@RequestMapping(path = "/users")
代码示例:
@GetMapping
public Iterable<User> findAll() {
List<User> userList = userRepository.findAll();
if(userList.isEmpty()){
// return "This list is empty :(";
}
return userList;
}
解决方案
这或多或少是你可能在前端做的事情。但是,如果需要,您可以返回一个 POJO,其中包含 List 和表示有关 List 的消息的 String。
class UserFindAllResponse {
private final List<User> users;
private final String message;
// constructor, getters
}
@GetMapping
public UserFindAllResponse findAll() {
List<User> userList = userRepository.findAll();
return new UserFindAllResponse(userList, userList.isEmpty() ? "There appears to be no users" : "There are x users");
}
推荐阅读
- firebase - Firestore 规则:当文档不存在时,get() 抛出错误而不是返回 null(仅在 Prod 和 Emulator 中;适用于规则测试器)
- r - 重新排列绘图中的重叠条,以便更长的条在后面 -R
- javascript - 根据 AJAX 成功更改 img 属性(src、alt...)(并修复我的 ajax;))
- sql - 违反 Oracle 生日列正则表达式约束
- html - 背景剪辑在谷歌网站中不起作用
- reactjs - 我们可以得到所有
- 在其上使用 React ref 的值
- 父母?
- 在其上使用 React ref 的值
- python - 如何使用 python-pptx 添加 xaxis 和 yaxis 标签
- lotus-notes - NotesDocument 打开两次
- amazon-web-services - AWS EMR - EMR_DefaultRole 的 EC2 权限不足
- javascript - 检查paypal付款是否通过?