[英]What is the correct way of return a List in Spring
我寫了一個用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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.