您的位置:首页 > 编程语言 > Java开发

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项目中拷贝过来的。他的配置文件是这样的:

<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/**"/>
这样就可以了。

不明白为什么静态资源就一定要写这个配置。不知道是出于什么考虑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: