2016-05-19 122 views
2

我的控制器的映射:Spring MVC的控制器映射的正则表达式

@RequestMapping(value = "{objectId}/{objectName: [a-zA-Z-]+}", method = GET) 
public String getObjects(@PathVariable Integer objectId, Model model) { ... } 

@RequestMapping(value = "{objectId}/{objectName: [a-zA-Z-]+}_{category}", method = GET) 
public String getObjectsForCategories(@PathVariable Integer objectId, 
             @PathVariable String category, 
             Model model) { ... } 

,并且URL我打:

http://localhost:8080/objects/2/xyz

http://localhost:8080/objects/2/xyz_mobile

春找不到处理程序并抱怨H没有找到映射TTP请求。

+0

删除'之间的空间:和''regex'并再试一次。 –

回答

3

按照Spring MVC documentation:

@RequestMapping注解支持使用正则表达式 在URI模板变量。语法是{varName:regex},其中 第一部分定义变量名称,第二部分定义 表达式。

所以,你应该删除空格:regex之间,如下所示:

@RequestMapping(value = "{objectId}/{objectName:[a-zA-Z-]+}", method = GET) 
               ^Space is removed