gpt4 book ai didi

spring - 访问具有相同请求映射的多个 Controller

转载 作者:IT老高 更新时间:2023-10-28 13:45:53 24 4
gpt4 key购买 nike

请找到我的 HomeController 和 DemoController

class HomeController{
@RequestMapping(value="index")
public void home(){
}
}

class DemoController{
@RequestMapping(value="index")
public void demo(){
}
}

当我尝试向索引发送请求时,哪个会被执行?我想知道我们如何为多个 Controller 拥有相同的请求映射值

最佳答案

https://stackoverflow.com/a/34590355/2682499在这一点上只是部分正确。

可以让多个 Controller 方法使用相同的 URI,只要您向 Spring 提供足够的附加信息来说明应该使用哪一个。您是否应该这样做是一个不同的问题。不过,为了避免混淆,我当然不建议在两个单独的 Controller 类中使用相同的 URI。

可以做这样的事情:

class HomeController{
@RequestMapping(value="/index", params = {"!name", "!foo"})
public List<Something> listItems(){
// retrieve Something list
}

@RequestMapping(value="/index", params = "name")
public List<Something> listItems(String name) {
// retrieve Something list WHERE name LIKE %name%
}

@RequestMapping(value="/index", params = {"!name", "foo"})
public List<Something> listItems(String foo) {
// Do something completely different
}
}

有关重载 URI 时可能发生的情况的完整文档,您应该引用 @ReqeustMapping 文档:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html .并且,特别是 https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html#params--对于部分请求参数。

关于spring - 访问具有相同请求映射的多个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34587254/

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