SpringREST能否像使用@RequestBody的请求参数一样将路径变量转换为对象?

SpringREST能否像使用@RequestBody的请求参数一样将路径变量转换为对象?,spring,rest,Spring,Rest,使用Spring REST,在执行post时,请求参数将转换为对象,并使用@RequestBody,例如: @RestController @RequestMapping("/reservations") class ReservationController{ ... @RequestMapping(value="/postByName") public Reservation save(@RequestBody Reservation reservation) {

使用Spring REST,在执行post时,请求参数将转换为对象,并使用
@RequestBody
,例如:

@RestController
@RequestMapping("/reservations")
class ReservationController{
    ...
    @RequestMapping(value="/postByName")
    public  Reservation save(@RequestBody Reservation reservation) {
        return reservationRepository.save(reservation);
    }
    ...
}
然后我做了,这很好,创建了一个预订:

curl -i -X POST -H "Content-Type:application/json" -d "{ \"name\" : \"Foo\" }" http://localhost:8080/reservations/postByName
我的问题是,当您使用路径变量而不是请求参数时,是否存在一些问题。所以我应该这样做:

curl -i -X POST -H "Content-Type:application/json" http://localhost:8080/reservations/postByName/Foo
现在我手工操作:在代码中,我用
new
创建一个预订,并将路径变量放入其中。

表示:

@PathVariable参数可以是任何简单类型,如int、long、Date等。Spring会自动转换为适当的类型,如果无法转换,则会抛出TypeMismatchException。您还可以注册对解析其他数据类型的支持。请参阅“方法参数和类型转换”一节和“自定义WebDataBinder初始化”一节