在SpringMVC3中,如何将带有查询参数(“a”和“b?xyz”)的多个URL映射到一个处理程序?
“/b”已映射到另一个处理程序。 RequestMapping(值={/a“,“/b?xyz”})似乎不起作用。在SpringMVC3中,如何将带有查询参数(“a”和“b?xyz”)的多个URL映射到一个处理程序?,spring,spring-mvc,Spring,Spring Mvc,“/b”已映射到另一个处理程序。 RequestMapping(值={/a“,“/b?xyz”})似乎不起作用。 谢谢你的帮助 如果要映射查询字符串参数,不应在RequestMapping的value成员中进行映射,而应在params成员中进行映射: @RequestMapping(value={"/a", "/b"}, params = "xyz") public void yourMethod() { } 当然,这只会匹配/a,如果它也有参数xyz。如果要映射查询字符串参数,不应该在Req
谢谢你的帮助 如果要映射查询字符串参数,不应在
RequestMapping
的value
成员中进行映射,而应在params
成员中进行映射:
@RequestMapping(value={"/a", "/b"}, params = "xyz")
public void yourMethod() {
}
当然,这只会匹配
/a
,如果它也有参数xyz。如果要映射查询字符串参数,不应该在RequestMapping
的值成员中进行,而应该在参数成员中:
@RequestMapping(value={"/a", "/b"}, params = "xyz")
public void yourMethod() {
}
当然,这只会匹配/a
,如果它也有参数xyz。您可以尝试以下方法:
@RequestMapping("/a")
public void yourMethodA() {
// do the common controller logic
}
@RequestMapping(value="/b", params = "xyz")
public void yourMethodB() {
yourMethodA(); // delegating the 1st mapped method
}
这样,您就不会重复自己的操作,并且能够准确地定义映射。您可以尝试以下操作:
@RequestMapping("/a")
public void yourMethodA() {
// do the common controller logic
}
@RequestMapping(value="/b", params = "xyz")
public void yourMethodB() {
yourMethodA(); // delegating the 1st mapped method
}
这样,您就不会重复自己的操作,并且能够准确地定义映射。回答“如果它也有参数xyz,则只匹配/a”,这正是我的问题:(Bobo):你的问题不是很有描述性的,缺少有用的代码。也许你应该考虑编辑你的问题并提供更多的信息来帮助我们更好地帮助你。回答“这只匹配/A,如果它也有参数XYZ”,那正是我的问题:(Bobo):你的问题不是很有描述性的,缺少有用的代码。也许你应该考虑编辑你的问题并提供更多的信息来帮助我们更好地帮助你。你能改变另一个处理器的映射方式,包括@请求映射(value=/b),PARAMS=“?XYZ”)。?您能否更改其他处理程序的映射方式,以包括@RequestMapping(value=“/b”,params=“!xyz”)??