SpringMVC 的2个配置问题

来源:互联网 发布:windows xp软件功能 编辑:程序博客网 时间:2024/05/22 08:10

这几天自己使用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/**"/>
这样就可以了。

不明白为什么静态资源就一定要写这个配置。不知道是出于什么考虑。

0 0
原创粉丝点击