SpringMVC 的2个配置问题
2015-11-07 11:20
639 查看
这几天自己使用Maven配置SpringMVC+Shiro,碰到两个问题。都耗费了我几个小时的时间,而且最后发现都属于配置上的细节问题。在这里记录下来。
1.找不到Action。
情况:使用注解配置Controller,并且在对应的方法上也写了@RequestMapping,并且mvc配置文件里有配置<mvc:annotation-driven/>和<context:component-scan>两个标签。怎么都找不到。
问题还是在<context:component-scan>这个标签上。
因为是在学习Shiro,所以springmvc的配置文件是直接从张开涛的Shiro项目中拷贝过来的。他的配置文件是这样的:
而我在使用的时候把中间的两个注释掉了。变成了
找问题的时候突然觉得这个use-default-filters很可疑,去掉这个属性之后果然就可以了。或者写成如下的形式,或者第一种形式。总之第二种形式是错误的。
根据结果来看,我注释掉的两行应该是配置spring扫描固定的注解的,猜测这样应该会提高一些效率。具体提升多少这里不做研究。
2.找不到静态资源。
情况:使用maven构建了项目,在webapp下创建了resource文件夹,并且里面放了jquery.js和test.jsp。结果jsp文件能访问,使用jquery文件的页面加载JQ的时候总是报404.
刚开始以为是maven或者Shiro配置问题。后来搜索了半天,发现还是MVC的配置问题。
在mvc的配置文件里加上:
不明白为什么静态资源就一定要写这个配置。不知道是出于什么考虑。
1.找不到Action。
情况:使用注解配置Controller,并且在对应的方法上也写了@RequestMapping,并且mvc配置文件里有配置<mvc:annotation-driven/>和<context:component-scan>两个标签。怎么都找不到。
问题还是在<context:component-scan>这个标签上。
因为是在学习Shiro,所以springmvc的配置文件是直接从张开涛的Shiro项目中拷贝过来的。他的配置文件是这样的:
<context:component-scan base-package="com.yrsoft" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan>
而我在使用的时候把中间的两个注释掉了。变成了
<context:component-scan base-package="com.yrsoft" use-default-filter="false"> </context:component-scan>
找问题的时候突然觉得这个use-default-filters很可疑,去掉这个属性之后果然就可以了。或者写成如下的形式,或者第一种形式。总之第二种形式是错误的。
<context:component-scan base-package="com.yrsoft" > <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan>
根据结果来看,我注释掉的两行应该是配置spring扫描固定的注解的,猜测这样应该会提高一些效率。具体提升多少这里不做研究。
2.找不到静态资源。
情况:使用maven构建了项目,在webapp下创建了resource文件夹,并且里面放了jquery.js和test.jsp。结果jsp文件能访问,使用jquery文件的页面加载JQ的时候总是报404.
刚开始以为是maven或者Shiro配置问题。后来搜索了半天,发现还是MVC的配置问题。
在mvc的配置文件里加上:
<mvc:resources location="/resource/" mapping="/resource/**"/>这样就可以了。
不明白为什么静态资源就一定要写这个配置。不知道是出于什么考虑。
相关文章推荐
- Java:sleep、wait、notify、notifyAll
- java 枚举类型与int转换
- myeclipse使用maven插件进行maven install时报错check $m2_home environment variable and mvn script match
- POJ-2470(用例过了,但一直超时,难道是Java效率太低?)
- java注解实现原理
- eclipse下载edit插件并导入github项目到真机运行
- javascrip学习之旅
- Java中使用正则表达式获取网页中所有图片的路径
- eclipse svn知识
- Spring Boot @PathVariable出现点号"."时导致路径参数截断获取不全的解决办法
- 使用Spring Boot快速构建应用
- myeclipse10.7皴,出口解决war包时报“SECURITY ALERT: INTEGERITY CHECK ERROR”
- 如何理解Java中的隐藏与覆盖
- Elasticsearch[2.0] ☞ Java Client API
- Java中的多重继承
- myeclipse一直停留在Loading workbench界面上的处理办法
- JAVA环境变量配置
- eclipse快捷键
- (转)Struts2+JFreeChart 环境搭建个基本用法!
- 初步学习Java中线程的实现与生命周期