【发布时间】:2026-02-07 12:40:01
【问题描述】:
我有一个请求映射,可以处理上下文之后的任何字符串,例如www.example.com/anystring
我是这样处理的:
@RequestMapping(value="/{str}", method = RequestMethod.GET)
public String getApp(@PathVariable("str") String anyString, ModelMap model) {
//Do something
}
问题是我的应用中有 2-3 个网址,网址如下:www.example.com/about、www.example.com/contact强>等
我为他们写了如下的请求映射:
@RequestMapping("/about")
public String getAboutPage() {
return "about";
}
但很明显,因为我已经声明任何字符串都应该由getApp() 处理,所以getAboutPage() 永远不会被执行。
如何从getApp() 映射中排除/about、/contact 等。
我们显然可以在 URL 字符串中添加另一个关键字,但这在我的应用程序用例中是不可能的。
请帮忙。 :(
编辑:
我是否应该只处理/about、/contact 内的getApp() 之类的:
@RequestMapping(value="/{str}", method = RequestMethod.GET)
public String getApp(@PathVariable("str") String anyString, ModelMap model) {
if(anyString.equals("about")){
//do about related stuff
}
if(anyString.equals("contact")){
//do contact related stuff
}
//Do something
}
有没有更好的办法?
【问题讨论】:
-
感谢@Sazzadur 对其进行编辑以提高可读性。
标签: java spring spring-mvc spring-security request