相关疑难解决方法(0)

Spring REST-将GET参数绑定到嵌套对象

我知道您可以将get请求参数绑定到像这样的pojo:

@RequestMapping(value = "/reservation",
        method = RequestMethod.GET,
        produces = MediaType.APPLICATION_JSON_VALUE)
public List<Reservation> loadReservations(ReservationCriteria criteria)

    return service.loadReservations(criteria);
}
Run Code Online (Sandbox Code Playgroud)

使用像这样的pojo:

public class ReservationCriteria {
    String hotelName;

    DateRange reservationDateRange;
    //getters-setters omitted
}
Run Code Online (Sandbox Code Playgroud)

有要求:/ reservation?hotelName = myHotel

myHotel将绑定到ReservationCriteria对象中的hotelName。

但是,如何将参数绑定到嵌套对象DateRange?定义如下:

public class DateRange {
    Date from;
    Date to;

    //getters-setters omitted
}
Run Code Online (Sandbox Code Playgroud)

有没有一种URL模式,它允许这种绑定,例如:

/reservation?hotelName=myHotel&reservationDateRange={fromDate=14.04.2016,toDate=15.04.2016}
Run Code Online (Sandbox Code Playgroud)

还是我必须声明单独的请求参数并手动绑定它们?

@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);
} …
Run Code Online (Sandbox Code Playgroud)

spring

4
推荐指数
2
解决办法
3534
查看次数

标签 统计

spring ×1