我知道你可以綁定得到請求參數就像一個POJO:彈簧安置 - 結合GET參數嵌套對象
@RequestMapping(value = "/reservation",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public List<Reservation> loadReservations(ReservationCriteria criteria)
return service.loadReservations(criteria);
}
使用POJO,如:
public class ReservationCriteria {
String hotelName;
DateRange reservationDateRange;
//getters-setters omitted
}
與請求:/預約?hotelName = myHotel
myHotel將在ReservationCriteria對象中綁定到hotelName。
但我怎樣才能將參數綁定到嵌套的對象DateRange?其定義如下:
public class DateRange {
Date from;
Date to;
//getters-setters omitted
}
是否有允許那樣的結合就像一個URL模式:
/reservation?hotelName=myHotel&reservationDateRange={fromDate=14.04.2016,toDate=15.04.2016}
還是我必須要申報單獨的請求參數和手動綁定呢?
@RequestMapping(value = "/reservation",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public List<Reservation> loadReservations(
ReservationCriteria criteria,
@RequestParam Date from,
@RequestParam Date to)
DateRange range = new DateRange();
range.setFrom(from);
range.setTo(to);
criteria.setDateRange(range);
return service.loadReservations(criteria);
}
我寧願不修改ReservationCriteria類,因爲它在許多其他項目,這將導致進行重構的很多應用。
我寧願因爲它在許多其他項目,這將導致進行重構的很多使用不編輯ReservationCriteria類。 – Reek
如果您的預訂不改變ReservationCriteria,您應該只提供一個Converter並註冊它。 –
可否請您詳細說明如何提供轉換器? – benaich