获取URI路径中的变量

fly*_*ire 8 java controller spring-mvc

在Spring MVC中,我有一个控制器,可以监听所有请求/my/app/path/controller/*.

让我们说一个请求/my/app/path/controller/blah/blah/blah/1/2/3.

如何获取/blah/blah/blah/1/2/3零件,即与*处理程序映射定义中匹配的零件.

换句话说,我正在寻找类似于pathInfoservlet但对于控制器的东西.

lab*_*att 8

在Spring 3中,您可以使用@ PathVariable注释来获取URL的部分内容.

以下是http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc/的简单示例

@RequestMapping(value="/hotels/{hotel}/bookings/{booking}", method=RequestMethod.GET)
public String getBooking(@PathVariable("hotel") long hotelId, @PathVariable("booking") long bookingId, Model model) {
    Hotel hotel = hotelService.getHotel(hotelId);
    Booking booking = hotel.getBooking(bookingId);
    model.addAttribute("booking", booking);
    return "booking";
}
Run Code Online (Sandbox Code Playgroud)