【问题标题】:Multiple @PathVariable in Spring MVCSpring MVC中的多个@PathVariable
【发布时间】:2012-07-06 06:03:04
【问题描述】:

很遗憾无法找到答案,希望有人能提供帮助。

在 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”的任何值)。

真的很感激有人可能对我哪里出错有任何见解?

谢谢!

【问题讨论】:

  • 应该可以,你确定你的调用正确吗?

标签: java spring spring-mvc annotations path-variables


【解决方案1】:
@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 ...
  }

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

【讨论】:

  • 对不起,我应该指定的。我已经在没有变量名的情况下进行了测试,使用了变量名并且还明确地尝试了(value="_some_pathvarname")。所有这些都会产生相同的结果:(
  • @user1389920 :您是否尝试过使用不同值硬编码请求 url;例如:/XYZ/conf/ABC 然后检查映射到控制器的内容?这是为了验证请求的格式是否正确......
  • 谢谢,找到问题了。 fnm 被截断了,所以测试值看起来是一样的……抱歉,这个有点脑残。我现在有正确的正则表达式,它正在工作,谢谢大家的帮助!
猜你喜欢
  • 2013-11-17
  • 2012-08-30
  • 2013-11-17
  • 1970-01-01
  • 2012-06-08
  • 2023-03-21
  • 1970-01-01
  • 2011-04-01
相关资源
最近更新 更多