java - Spring中返回List的正确方法是什么
问题描述
我写了一个用 Spring 注释的方法。它将返回一个列表。以下代码片段将代表该方法。
@RequestMapping(path = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<ReservationResponse> getAvailableRooms(
@RequestParam(name = "checkin")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate checkin,
@RequestParam(name = "checkout")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate checkout) {
return new ResponseEntity<>(new ReservationResponse(), HttpStatus.OK);
}
我想知道的是,如果我写它,这会是错的吗?
@RequestMapping(path = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<ReservationResponse> getAvailableRooms(
@RequestParam(name = "checkin")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate checkin,
@RequestParam(name = "checkout")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate checkout) {
ResponseEntity<ReservationResponse> reservationResponse = new ResponseEntity<ReservationResponse>();
return (reservationResponse, HttpStatus.OK);
}
解决方案
我认为您的ReservationResponse包含这样的列表:
class ReservationResponse{
List<Rooms> availableRooms;
}
如果是这样,那么您只需返回ReservationResponse即可, 无需添加任何内容。
@RequestMapping(path = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public ReservationResponse getAvailableRooms(
@RequestParam(name = "checkin")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate checkin,
@RequestParam(name = "checkout")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate checkout) {
ReservationResponse> reservationResponse = new ReservationResponse();
List<Rooms> rooms = yourService.getAvailableRooms(checkIn,checkOut);
reservationResponse.setAvailableRooms(rooms);
return reservationResponse;
}
或者您可以像这样简单地返回房间
@RequestMapping(path = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public List<Rooms> getAvailableRooms(
@RequestParam(name = "checkin")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate checkin,
@RequestParam(name = "checkout")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate checkout) {
List<Rooms> rooms = yourService.getAvailableRooms(checkIn,checkOut);
return rooms;
}
推荐阅读
- apache-spark - 从 PySpark 查询 Hive 表时出错
- image - 使用 Flutter 在设备中存储图像的最佳方法是什么
- apache-spark - Java Spark Dataset 可以选择但不能分组、过滤或聚合
- python - 使用 BeautifulSoup 抓取网页
- constructor - 错误:抽象类类型“gr::zeromq::base_sink_impl”的无效新表达式
- html - 图像大小破坏响应能力
- sql - 为什么我无法在 C: 中从 DB Browser 中找到我的数据库文件
- google-chrome-devtools - 是否可以要求 Chrome 故意无法加载特定的 JavaScript URL?
- php - 从数组循环显示 PHP 不需要的字符
- assembly - 理解 gnu-assembly 中的“参数”定义