Spring MVC中的多个@PathVariable

Posted

技术标签:

【中文标题】Spring MVC中的多个@PathVariable【英文标题】:Multiple @PathVariable in Spring MVC 【发布时间】: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”的任何值)。

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

谢谢!

【问题讨论】:

应该可以,你确定你的调用正确吗? 【参考方案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 被截断了,所以测试值看起来是一样的……抱歉,这个有点脑残。我现在有正确的正则表达式,它正在工作,谢谢大家的帮助!

以上是关于Spring MVC中的多个@PathVariable的主要内容,如果未能解决你的问题,请参考以下文章

spring mvc中的多个视图解析器

使用 Ajax 将 @RequestBody 中的多个变量传递给 Spring MVC 控制器

如何在 Java Spring Boot MVC 中使用 Ajax 删除多个项目

如何使用 Hibernate、Spring MVC 将数据从单个表单发送到多个数据库表

spring mvc requestparam value可以写多个值吗

Spring MVC获取参数