2012-02-24 136 views
1

对于那些了解Spring的人来说,这可能是一个简单的问题,但由于我是新手,因此无论如何我都会问这个问题。春季注解中的大括号

我经历了一些春天代码,我无法理解的代码本节中的以下各项

@RequestMapping(value="/{id}") 
public void show(@PathVariable("id") long id, Model model) {...} 

的评论是 - “在使用URI模板,使用@PathVariable访问参数注释。

现在早些时候,我遇到的代码来了,如同

@RequestMapping(value="/url/path") 
public String list(Model model) {...} 

这样,我明白,每当遇到的URL“/ URL /路径”,列表()方法将被调用,但我无法理解前面的注释。这是什么意思?

此外,下一行说@PathVariable注释可以通过正则表达式

@RequestMapping(value="/{id}") 
public void show(@PathVariable("id:[\\d]*") String idl) {...} // will match only numberic IDs 

的限制是什么意思?

回答

2

16.3.2.2 URI Template Patterns

URI模板可以用于方便地访问一个URL的选定部分在@RequestMapping方法。

例如,URI模板http://www.example.com/users/{userId}包含变量userId。将值fred分配给变量产生http://www.example.com/users/fred

在Spring MVC可以使用@PathVariable注释上的一个方法的参数将其绑定到一个URI模板变量的值:

所以,在你的榜样:

@RequestMapping(value="/{id}") 
public void show(@PathVariable("id") long id, Model model) {...} 

这将提取由{id}表示的URL部分,并将其绑定到id方法参数,例如路径/42将绑定42id

+0

明白了。谢谢。 – CodeBlue 2012-02-24 20:16:13