2014-06-10 24 views
1

我有两个方法,这是冲突暧昧的处理方法为映射HTTP路径

1. @RequestMapping(value = { "/{name}" }, method = RequestMethod.GET) 
    void foo1(@PathVariable("name") final String name) 

2. @RequestMapping(value = { "/{email}" }, method = RequestMethod.GET) 
    void getTemplateVersionsBySenderForClient(@PathVariable("email") final String email, 
      @RequestParam(value = "timestamp", required = true) final long timestamp) 

我如何避免这种情况?

+0

作为用户,您如何区分这两个映射?你最好提供语义上重要的URI(/ name/{name}和/ email/{email}) –

回答

-1

您可以将URI模板更改为其他内容。您还可以将“电子邮件”URI模板更改为使用正则表达式,以便第二种方法处理看起来像电子邮件地址的路径。请参阅http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html,在“具有正则表达式的URI模板模式”下:

@RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}") 
public void handle(@PathVariable String version, @PathVariable String extension) { 
    // ... 
}