gpt4 book ai didi

java - 如何在 Spring 中从 @RequestMapping 中排除 url 映射?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:26:07 28 4
gpt4 key购买 nike

我有一个请求映射,可以处理上下文之后的任何字符串,例如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/aboutwww.example.com/contact

我为他们写了如下请求映射:

@RequestMapping("/about")
public String getAboutPage() {
return "about";
}

但显然,因为我已经声明任何字符串都应该由 getApp() 处理, getAboutPage()永远不会被执行。我怎样才能排除 /about , /contact等来自 getApp()映射。我们显然可以向 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
}

有没有更好的办法?

最佳答案

在“包罗万象”映射中指定 HTTP 请求方法可能会使路径匹配器认为它比绝对路径映射更具体。

在绝对路径上指定请求方法,映射比较器应将绝对匹配排在包含路径变量的之前。

例如。

@RequestMapping("/about", method = RequestMethod.GET)

或者,您可以删除 catch-all 上的方法规范:

@RequestMapping("/{str}")

这完全取决于您的 url 结构以及这些路径是否接受不同的 http 请求方法。

关于java - 如何在 Spring 中从 @RequestMapping 中排除 url 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364304/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com