【问题标题】:class level mapping conflict in spring controllerSpring控制器中的类级映射冲突
【发布时间】:2020-08-30 00:31:22
【问题描述】:

刚开始学习spring boot,请解决我的疑惑

假设有两个控制器

@Controller
@RequestMapping("A")
public class A{
               @RequestMapping("hi")
               public String gethi(){
                      return "Hi";
               }
}

和另一个控制器

@Controller
@RequestMapping("B")
public class B{
               @RequestMapping("hello")
               public String gethello(){
                      return "Hello";
               }
}

假设用户在索引页面上,他点击了如下链接

<a href="A/hi">click</a>

他指定控制器 A 将收到此请求并相应地响应它。url 看起来像这样:www.abc.com/A/hi

但是如果用户想向控制器 B 的方法发送请求 假设现在他点击如下链接

<a href="B/hello">click</a>

现在用户将收到一条错误消息。网址变为:www.abc.com/A/B/hello。

但如果在类级别请求映射中添加 *,例如:

@Controller
@RequestMapping("*/B")
public class B{

然后这个方法将执行。但是这个网址 www.abc.com/A/B/hello 仍然看起来不太好。

【问题讨论】:

    标签: java spring-boot model-view-controller controller mapping


    【解决方案1】:
    <a href="A/hi">click</a>
    

    点击以上链接后返回索引 www.abc.com

    现在,当您单击 &lt;a href="B/hello"&gt;click&lt;/a&gt; 时,它会正常工作。

    这是因为您没有在 UI 中使用导航路由机制。

    【讨论】:

      猜你喜欢
      • 2012-05-12
      • 1970-01-01
      • 2012-04-30
      • 2018-03-27
      • 1970-01-01
      • 2013-04-24
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多