手机
当前位置:查字典教程网 >编程开发 >Java >Spring MVC 注解自动扫描失效原因分析
Spring MVC 注解自动扫描失效原因分析
摘要:关于spring自动扫描,在控制层,采用注解配置@Controller,项目能够成功启动,且无任何报错。但是在进行页面跳转时,并未进行相应的...

关于spring自动扫描,在控制层,采用注解配置@Controller,项目能够成功启动,且无任何报错。但是 在进行页面跳转时,并未进行相应的拦截,整个界面只能在默认界面 ,跳转报404,由于楼主初次尝试,在绕了一个大圈后,初步确认是在扫描时mvc控制器,并未成功,详情请看代码

<> <context:component-scan base-package="com.cjw.test.controller" use-default-filters="false"> </context:component-scan> <> <mvc:annotation-driven/> <><mvc:default-servlet-handler/>

但是在进行页面跳转时,始终报404,因为在控制器扫描时未将控制层与其余注解区别,修改后代码如下:

<> <context:component-scan base-package="com.cjw.test.controller" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>

同时,为求将配置项最简单化,楼主分别剔除相应的配置,观察其会对 整个功能的启动或跳转产生什么影响,在去除

<mvc:annotation-driven/>

后发现同样不能跳转。最后确认其原因如下:

最后的配置如果没有<mvc:annotation-driven/>,那么所有的Controller可能就没有解析,所有当有请求时候都没有匹配的处理请求类,就都去<mvc:default-servlet-handler/>即default servlet处理了。添加上<mvc:annotation-driven/>后,相应的请求被Controller处理,而静态资源因为没有相应的Controller就会被default servlet处理。总之没有相应的Controller就会被default servlet处理就ok了。

web.xml配置如下,采用静态页面跳转:

<servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

以上所述是小编给大家介绍的Spring MVC 注解自动扫描失效原因分析,如果大家有任何疑问请给我们留言,小编会及时回复大家的。在此也非常感谢大家对查字典教程网的支持!

【Spring MVC 注解自动扫描失效原因分析】相关文章:

Java 使用poi把数据库中数据导入Excel的解决方法

对Java中JSON解析器的一些见解

java 实现约瑟夫环的实例代码

java_String和StringBuffer区别分析

java加密枝术深入理解

java解析xml之dom4j解析xml示例分享

解决Java调用BAT批处理不弹出cmd窗口的方法分析

解决JSTL foEach标签 刷新报错的方法

java在linux系统下开机启动无法使用sudo命令的原因及解决办法

深入同步访问共享的可变数据分析

精品推荐
分类导航