spring中springmvc的xml配置标签总结

来源:互联网 发布:plc模块化编程 编辑:程序博客网 时间:2024/06/05 08:00

spring3引入了 mvc XML 配置命名空间, 简化了在 web 应用程序中设置 Spring mvc 的过程,除非需要在 bean 级别对配置进行更细化的控制,否则不再需要注册低级 bean (如 AnnotationMethodHandlerAdapter), 而首选简单地使用命名空间及其 higher-level构造。

mvc namespace由3个标签组成:mvc:annotation-driven,mvc:interceptors以及mvc:view-controller

mvc:annotation-driven

此标记注册 SpringMVC 需要的 DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter bean, 以便将请求发送到@Controllers。该标记根据你的类路径中存在的内容来配置这两个 bean, 并使其具有合理的默认值。默认值为:

1. 除了在数据绑定时的JavaBeans PropertyEditors之外,支持spring3的Type ConversionService。

默认情况下使用由

org.springframework.format.support.FormattingConversionServiceFactoryBean

生成的ConversionService 实例。这可以通过设置conversion-serviceattributes来重写。

2. 使用@NumberFormat注释来format Number field

3. 如果classpath存在Joda Time1.3,那么使用@DateTimeFormat注释来format Date,Calendar, Long fields

4. 如果classpath存在JSR-303,那么使用@Valid注释支持validating @Controller inputs。

5. 如果classpath存在JAXB,那么支持读写XML

6. 如果classpath存在jackson,那么支持读写JSON

 

这也就解决了长久以来的一个疑问,问什么在xml中就配置了<mvc:annotation-driven>,就可以实现很多事情。原因是配置之后,如果classpath存在需要的jar文件,那么support will be detected on classpath and enable automatically

 

mvc:interceptors

此标记允许注册应用于所有HandlerMapping bean 的自定义Handlerlnterceptors 或WebRequestlnterceptors。还可以设定拦截器拦截指定的URL路径。

mvc:view-controller

此标记是用于定义在调用时立即转发到视图的 ParameterizableViewController 的快捷方式。在静态情况下,如果在视图生成响应之前没有要执行的 Java 控制器逻辑, 请使用它。及从一个JSP页面直接跳转到另一个JSP页面。

mvc:resources

此标记允许静态资源请求遵循特定的 URL 模式,

而这个模式是由ResourceHttpRequestHandler中配置的Resource locations list决定的。这提供了一种方便的方法, 可以从 web 应用程序根之外的位置 (包括类路径上的位置) 服务静态资源。

cache-period属性可用于设置未来的过期标头 (推荐设置为1年 cache-period=’31 556926’), 以便客户端更有效地利用它们。

mvc:default-servlet-handler

此标记允许mappingthe DispatcherServlet to ‘/’ (这样就override了servlet容器默认的servlet),同时仍旧允许静态资源请求由servlet容器默认的servlet来处理。它通过把URL mapping设置为/**(最低优先级)来配置DefaultServletHttpRequestHandler,这个handler将会forward所有的请求到默认servlet。

 

在applicationContext-mvc.xml中配置这一条,会有如下log生成。但是请求/register并不通过。

Mapped URL path [/**] ontohandler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'


参考:https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources

阅读全文
0 0
原创粉丝点击