【问题标题】:Spring - Annotation Based Controller - RequestMapping based on query stringSpring - 基于注释的控制器 - 基于查询字符串的请求映射
【发布时间】:2009-01-18 05:15:57
【问题描述】:

在Spring基于注解的控制器中,是否可以使用@RequestMapping将不同的查询字符串映射到不同的方法?

例如

@RequestMapping("/test.html?day=monday")
public void writeMonday() {
}


@RequestMapping("/test.html?day=tuesday")
public void writeTuesday() {
}

【问题讨论】:

    标签: spring annotations


    【解决方案1】:

    是的,您可以使用params 元素:

    @RequestMapping("/test.html", params = "day=monday")
    public void writeMonday() {
    }
    
    @RequestMapping("/test.html", params = "day=tuesday")
    public void writeTuesday() {
    }
    

    您甚至可以根据参数的存在不存在进行映射:

    @RequestMapping("/test.html", params = "day")
    public void writeSomeDay() {
    }
    
    @RequestMapping("/test.html", params = "!day")
    public void writeNoDay() {
    }
    

    【讨论】:

    • 这显示了我的语法错误(在 Spring 3 上),但以下工作。 @RequestMapping(value="/test.html", params = "day=monday")
    • 如果我在 url 中有多个参数,那该怎么办??
    【解决方案2】:

    或者你可以这样做:

    @RequestMapping("/test.html")
    public void writeSomeDay(@RequestParam String day) {
       // code to handle "day" comes here...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-25
      • 2016-01-04
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多