代码之家  ›  专栏  ›  技术社区  ›  Ritesh M Nayak beny23

我能用SpringDispatcherServlet捕获所有不匹配的请求吗?

  •  2
  • Ritesh M Nayak beny23  · 技术社区  · 14 年前

    我正在为一个项目使用SpringMVC,并且正在使用SpringDispatcherServlet将进入应用程序的请求映射到其他地方编写的控制器。如果请求没有映射到任何现有的控制器视图映射,我正在寻找一种方法来拥有默认的处理程序(catch all处理程序)。这当前显示了一个未找到资源的异常,但我想知道在Spring中是否有catch all unmatched requests函数可用。

    1 回复  |  直到 14 年前
        1
  •  2
  •   skaffman    14 年前

    每个 HandlerMapping 春季MVC的战略 a defaultHandler property 就为了这个目的。

    如果您的Spring配置已经指定了 处理程序映射 明确的对象(例如 SimpleUrlHandlerMapping 但是,如果您依赖默认值来提供 处理程序映射 为你。

    例如,如果您使用的是带注释的控制器,那么您可能正在中继默认的 DefaultAnnotationHandlerMapping 哪个弹簧自动供应?但是,您可以提供自己的bean来覆盖默认值:

    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
       <property name="defaultHandler" ref="myDefaultHandler"/>
    </bean>
    

    同样的模式也适用于任何 Handlermapping 键入,只需替换类名。