当前位置: 首页 > 面试题库 >

Spring Controller处理所有其他Controller不匹配的请求

沈永贞
2023-03-14
问题内容

我有一系列带有与某些URL匹配的请求映射的控制器。我还想要一个控制器,该控制器将与其他控制器不匹配的任何其他URL匹配。在Spring
MVC中有办法做到这一点吗?例如,我是否可以使用具有@RequestMapping(value =“
**”)的控制器并更改处理Spring控制器的顺序,以便最后处理该Controller以捕获所有不匹配的请求?还是有另一种方式来实现这种行为?


问题答案:

如果您的基本网址是这样的= http:// localhost / myapp
/
,其中myapp是您的上下文,则myapp / a.html,myapp / b.html myapp
/
c.html将映射到以下控制器中的前3个方法。但是其他任何方法都将达到与相匹配的最后一个方法。请注意,如果将映射方法放在控制器顶部,则所有请求都将到达此方法。

然后,此控制器可以满足您的要求:

@Controller
@RequestMapping("/")
public class ImportController{

    @RequestMapping(value = "a.html", method = RequestMethod.GET)
    public ModelAndView getA(HttpServletRequest req) {
        ModelAndView mv;
        mv = new ModelAndView("a");
        return mv;
    }

    @RequestMapping(value = "b.html", method = RequestMethod.GET)
    public ModelAndView getB(HttpServletRequest req) {
        ModelAndView mv;
        mv = new ModelAndView("b");
        return mv;
    }

    @RequestMapping(value = "c.html", method = RequestMethod.GET)
    public ModelAndView getC(HttpServletRequest req) {
        ModelAndView mv;
        mv = new ModelAndView("c");
        return mv;
    }

@RequestMapping(value="**",method = RequestMethod.GET)
public String getAnythingelse(){
return "redirect:/404.html";
}


 类似资料:
  • 问题内容: 我编写了一个查询,返回了将 Customer和Salespeoeple 关联的行。 请注意,查询将联接多个数据库表。请注意,并非所有客户都有销售人员。 我的数据库中也只有一个表(称为 发票 ),如下所示。 如何在MySQL中使用UPDATE来使我的发票表看起来像下面的表? 也就是说,如何在存在这种关系的地方更新发票表以包含正确的salesperson_id和salesperson_na

  • 用粗体写的片段让我感到厌烦。这是否意味着当在一个请求中设置键A的值时,将阻止另一个想要为键B设置值的请求,直到第一个请求完成为止?

  • 本文向大家介绍Nginx处理请求时的匹配规则详析,包括了Nginx处理请求时的匹配规则详析的使用技巧和注意事项,需要的朋友参考一下 nginx 在收到一条请求时将先通过 server_name 匹配一个 server, 然后使用 server 中的 location 继续匹配. 匹配 server_name 在 nginx 中, server_name 决定了当收到一个请求后哪一个 server

  • 我正在为我的博客站点使用正则表达式模式,使URL地址成为可点击的链接,这非常有效。该模式具有以下格式: 但在不久的过去,我发现这个模式也匹配文件名,所以当用户在评论中发布一些文件名时,系统会将其作为链接。您可以在此处看到这种效果: 我试图实现的是匹配除最后一个示例(见下图)之外的所有URL格式,因此或将不会突出显示。 输入应该匹配的内容: 输入不应匹配的内容: URL格式是什么样子的? 对于这种情

  • 老实说,我不知道这个最上面的部分是做什么的,一开始我的类“东西”甚至没有显示出来,因为它一直说它不存在,所以有人做了那个虚空设置的事情,它起作用了?我是新手所以如果我触发了某人我道歉。 我像往常一样给班打电话 你知道这是什么问题吗?如果你把它放到处理中,我只得到一个空白屏幕。

  • 问题内容: 我的范围内有一个函数可以在用户单击按钮或触发某些事件并自动调用此函数时检索我的服务状态。 这是我的功能,在我使用的控制器中定义: 单元测试如下: 在单元测试中,我还在同一个控制器上进行了其他$ httpBackend测试,但是所有这些仅能正常工作。我究竟做错了什么? 问题答案: 您需要 在 调用方法 之前 提供。 设置请求的期望,然后触发请求。 希望这可以帮助。