`

<mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题

 
阅读更多

类DispatcherServlet中变量

private List<HandlerAdapter> handlerAdapters;

 

 

来自: http://www.cnblogs.com/hujingwei/p/5349983.html

 在做项目的时候,我希望静态资源由WEB服务器默认的Servlet来处理,所以我在配置文件中添加了如下的语句:

           <mvc:default-servlet-handler/>

但是我再次运行项目,并访问资源的时候,发现访问@RequestMapping("/path1/path2")都不能访问了,之前没有添加的时候是能够访问的。

解决方案是,在配置文件中再添加一句代码:

           <mvc:annotation-driven/>

这样做的原因是:

 

     

 

当两种标签都没有的时候,框架默认注册的有AnnotationMethodHandlerAdapter这个bean,所以能够处理@RequestMapping这个注解,但是只配置了<mvc:default-servlet-handler/>时所注册的三个bean都不能处理@RequestMapping注解,因此无法找到相应的Controller,进而无法进行访问路径的映射,当两种标签都有的时候,<mvc:annotation-driven/>会注册一个RequestMappingHandlerAdapter的bean,这个bean能够处理@RequestMapping这个注解。

分享到:
评论

相关推荐

    拦截器与冲突解决

    - **排除默认拦截器**:如果`&lt;mvc:annotation-driven /&gt;`包含默认拦截器,可以考虑使用`&lt;mvc:default-servlet-handler&gt;`或`&lt;mvc:annotation-driven enable-matrix-variables="false" /&gt;`来禁用它们。 - **调整拦截器...

    SpringMVC入门

    - **不处理静态资源**:通过`&lt;mvc:default-servlet-handler/&gt;`让Servlet容器处理静态资源。 - **启用注解驱动**:使用`&lt;mvc:annotation-driven/&gt;`来启用Spring MVC的注解功能。 - **配置视图解析器**:定义视图解析...

    Spring3中配置DBCP,C3P0,Proxool,Bonecp数据源

    &lt;mvc:default-servlet-handler /&gt; &lt;aop:config proxy-target-class="true"/&gt; &lt;tx:annotation-driven transaction-manager="txManager"/&gt; &lt;!-- 采用单数据源事务控制方式,通过注解来定义事务--&gt; &lt;bean ...

    SSM笔记-SpringMVC基本使用

    3. **Spring MVC配置文件**:配置`&lt;mvc:annotation-driven/&gt;`来启用基于注解的配置,以及`&lt;mvc:default-servlet-handler/&gt;`来处理静态资源请求。 ```xml &lt;beans xmlns=...

    如何访问到静态的文件,如jpg,js,css..docx

    &lt;prop key="/**"&gt;defaultServletHandler&lt;/prop&gt; &lt;/props&gt; &lt;/property&gt; &lt;property name="order" value="0" /&gt; &lt;!-- 确保此配置优先 --&gt; &lt;/bean&gt; &lt;bean id="defaultServletHandler" class="org.springframework....

    (springMVC访问js和css)[参考].pdf

    `&lt;mvc:default-servlet-handler&gt;`则提供了一种自动化处理静态资源的方式,无需为每种资源类型进行单独配置。 在实际开发中,选择哪种方案取决于项目需求和团队偏好。对于大型复杂项目,可能需要结合使用这些策略,...

    个人整理Spring 框架

    - `&lt;mvc:default-servlet-handler/&gt;`和`&lt;mvc:resources/&gt;`:用于处理静态资源,如CSS、JS和图片等,前者将请求转发给Web服务器的默认Servlet处理,后者则允许更细粒度地控制静态资源的缓存策略。 ### 结论 Spring...

    自己搭建的简单spring环境

    &lt;mvc:default-servlet-handler/&gt; &lt;/beans&gt; ``` 然后,创建Controller类。Controller类使用@Controller注解标识,并使用@RequestMapping及其相关的注解来处理HTTP请求。例如,一个简单的Hello World Controller: ...

    SSM框架图片上传及回显

    &lt;mvc:default-servlet-handler /&gt; ``` 六、访问本地图片资源 在 Tomcat 9 版本中,需要修改 Tomcat 的配置文件来访问本地图片资源。方法一是修改 Tomcat 的 conf 目录下的 service.xml 文件,在 &lt;host&gt; 标签中加入...

    SpringMVC访问静态资源的三种方式小结

    第三种方法是通过`&lt;mvc:default-servlet-handler/&gt;`标签,它会自动配置一个`DefaultServletHttpRequestHandler`,将`/**`的请求映射给应用服务器的默认Servlet。这种方式非常简洁,因为它不需要为每种静态资源类型做...

    Spring MVC 注解自动扫描失效原因分析

    `&lt;mvc:default-servlet-handler/&gt;`元素的目的是处理静态内容和没有@RequestMapping映射的URL。当一个请求没有匹配的Controller处理时,它会交由默认的Servlet来处理。如果注解驱动的配置缺失,所有的请求,包括那些...

    Java SSM框架如何配置静态资源加载

    &lt;mvc:default-servlet-handler default-servlet-name="default"/&gt; 这段代码将使得SSM框架可以加载静态资源,但需要注意的是,这种方法在实际应用中可能会出现一些问题。 三、结论 本文主要介绍了Java SSM框架如何...

    使用注解开发SpringMVC详细配置教程

    2. **过滤静态资源**:通过`&lt;mvc:default-servlet-handler/&gt;`标签,SpringMVC会自动处理静态资源请求,如CSS、JavaScript等,将其交由默认的Servlet处理,而不是由DispatcherServlet处理。 3. **启用注解驱动**:...

    springmvc+maven搭建web项目

    &lt;mvc:default-servlet-handler /&gt; &lt;!-- 视图解析器 --&gt; &lt;bean&gt; &lt;property name="prefix" value="/WEB-INF/" /&gt; &lt;property name="suffix" value=".jsp" /&gt; &lt;/bean&gt; &lt;/beans&gt; ``` 四、创建Controller 在项目中...

    LibrarySystem图书管理系统(二)

    * 访问静态资源:&lt;mvc:default-servlet-handler/&gt; * 开启注解模式:&lt;mvc:annotation-driven/&gt; 四、小结 LibrarySystem图书管理系统的第二篇主要介绍了数据库配置、MyBatis配置和Spring配置的相关知识点。这些知识...

    史上最全最强SpringMVC详细示例实战教程(图文)

    &lt;mvc:default-servlet-handler /&gt; &lt;mvc:annotation-driven /&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"&gt; &lt;property name=...

Global site tag (gtag.js) - Google Analytics