2012-07-05 63 views
14

找不到这个不幸的答案,所以希望有人可以帮忙。Spring MVC中的多个@PathVariable

在Spring MVC 3.1.0这里是我的方法:

@RequestMapping(value = "/{app}/conf/{fnm}", method=RequestMethod.GET) 
public ResponseEntity<?> getConf(@PathVariable String app, @PathVariable String fnm) { 
    log.debug("AppName:" + app); 
    log.debug("fName:" + fnm); 
      ... 
      return ... 
    } 

我已经看到了一些在线的例子,它似乎存在具有理论上多个@PathVariables没有问题。

但是,当我这样做时,“app”和“fnm”都包含相同的值(即分配给“app”的值)。

真的很感谢任何见解有人可能要我去哪里错了吗?

谢谢!

+0

应该工作,你确定你调用它是正确的? – NimChimpsky 2012-07-05 19:17:19

回答

24
@RequestMapping(value = "/{app}/conf/{fnm}", method=RequestMethod.GET) 
public ResponseEntity<?> getConf(@PathVariable("app") String app, @PathVariable("fnm") String fnm) { 
    log.debug("AppName:" + app); 
    log.debug("fName:" + fnm); 
      ... 
      return ... 
    } 

基本上路径变量需要用括号在方法参数中指定。 这有帮助吗?

+0

对不起,我应该指定。我已经测试了没有变量名称的变量名称,并且显式地尝试了(value =“_ some_pathvarname”)。所有这些都会产生相同的结果:( – user1389920 2012-07-05 19:19:03

+0

@ user1389920:您是否尝试了使用不同值的硬编码请求url;例如:/ XYZ/conf/ABC然后检查映射到Controller的内容是否验证请求是否正确形成... – 2012-07-05 19:22:17

+0

谢谢,发现问题fnm被截断,所以测试值看起来是一样的...抱歉,大脑褪色了一点,我现在有正确的正则表达式,它的工作,谢谢大家的帮助! – user1389920 2012-07-05 19:25:22

相关问题