Spring - 基于注释的控制器 - 基于查询字符串的RequestMapping

njd*_*per 54 spring annotations

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

例如

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


@RequestMapping("/test.html?day=tuesday")
public void writeTuesday() {
}
Run Code Online (Sandbox Code Playgroud)

Hil*_*ell 79

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

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

@RequestMapping("/test.html", params = "day=tuesday")
public void writeTuesday() {
}
Run Code Online (Sandbox Code Playgroud)

你甚至可以在地图基础上,存在不存在一个特性参数的:

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

@RequestMapping("/test.html", params = "!day")
public void writeNoDay() {
}
Run Code Online (Sandbox Code Playgroud)

  • 这显示了我的语法错误(在Spring 3上),但以下工作.@RequestMapping(value ="/ test.html",params ="day = monday") (4认同)
  • 如果我在url中有多个params那么该怎么办? (4认同)

小智 51

或者你可以这样做:

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