我目前正在开发一个Spring MVC项目,并且在使用SpringMVC的"<MVC:resource "
标签来加载静态资源方面存在一些问题。所以我下载了springMVC展示项目并对其进行了一些更改以检查此标记。
由于我的项目很简单,在我看来,“转换服务”的两个标签是没有必要的。
然而,在我删除了这两个标签之后,有些东西发生了。
如果我同时配置了静态资源"<resources mapping="/resources/.."
和"<context:component-scan base-package="org.springframework.samples.mvc" />"
标记(在controllers.xml中)的标记,那么我就无法访问控制器上的任何uri - 它返回404未找到的错误。如果我注释掉资源映射标记,那么这些控制器工作正常。
有没有人遇到过这种情况?知道怎么解决这个问题吗?
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven conversion-service="conversionService">
<argument-resolvers>
<beans:bean class="org.springframework.samples.mvc.data.custom.CustomArgumentResolver"/>
</argument-resolvers>
</annotation-driven>
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources/ directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<!-- Only needed because we install custom converters to support the examples in the org.springframewok.samples.mvc.convert package -->
<beans:bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<beans:property name="formatters">
<beans:bean class="org.springframework.samples.mvc.convert.MaskFormatAnnotationFormatterFactory" />
</beans:property>
</beans:bean>
<!-- Imports user-defined @Controller beans that process client requests -->
<beans:import resource="controllers.xml" />
</beans:beans>
答案 0 :(得分:2)
<context:annotation-config/>
只是不能在Spring 3.1.0上运行,但是<mvc:annotation-driven/>
正常工作,我引用了this post
答案 1 :(得分:0)
我遇到了同样的问题,我所做的就是删除资源标签中的“**”。
答案 2 :(得分:0)
我遇到过类似的问题 - SO Question
您可以使用<mvc:annotation-driven/>
或使用更高优先级的顺序自行提供处理程序映射 -
<bean id="annotationUrlMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="order" value="0" />
</bean>
<bean id="annotationMethodHandlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>