使用的部分网址作为一个参数的控制器软弹簧
-
20-09-2019 - |
题
例如,与URL
foo.com/bar/99
99将提供直接的方法在控制器作为一个参数。控制器的映射到吧
对任何熟悉ASP.NET 视或Django,这将类似于路线。图路线在前和使用(?P\d+)在urlpatterns在后者。
这将有可能处理数据在Http请求对象的直接得到这一点,但我想知道,如果春季视已经建立支持本(特别是2.5版).
解决方案
不,春季不支持此。你可以,但是,路径图要方法 名称 使用 @RequestMapping 并适当配置 InternalPathMethodNameResolver
:
@Controller
@RequestMapping("/bar/*")
public class MyController {
...
public String do99(HttpServletRequest request) {
...
}
}
你必须到指定 prefix
对于 InternalPathMethodNameResolver
作为"做"为上述工作由于方法名称不能开始用数字。如果你们使用"foo.com/bar/baz"如网址和电话你的方法 baz
, ,没有额外的配置将是必要的。
如果你不想使用的方法名称映,越来越'99'当作参数是一样容易抓住它 request.getPathInfo()
在你的方法。
其他提示
有关使用Spring 3人,我已经学会了这个可以使用新@PathVairable注释完成
下面是从 HTTP的示例://博客.springsource.com / 2009/03/08 /休息合弹簧-3- MVC /
@RequestMapping("/hotels/{hotelId}")
public String getHotel(@PathVariable String hotelId, Model model) {
List<Hotel> hotels = hotelService.getHotels();
model.addAttribute("hotels", hotels);
return "hotels";
}
不隶属于 StackOverflow