一.问题原因:
配置springmvc中央处理器会拦截所有的静态资源和页面(jsp,html),导致访问不到该路径,出现404错误
二.解决方法:
配置视图解析器和静态资源处理方法
1.在spring-mvc.xml配置文件中添加静态资源处理
<mvc:resources mapping="/static/**" location="/static"/>
<mva:annotation-driven>
2.配置视图解析器
1)jsp的视图解析器(在spring-mvc.xml中添加)
<!-- spring-mvc jsp视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/views/" />
<property name="suffix" value=".jsp" />
</bean>
2)html的视图解析器
a.第一种,在web.xml中加入下面代码,表示对静态资源.html,.css,.js不拦截。
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
b.第二种,使用配置“html”视图解析器这样配置,注意这种配置html是没有前缀属性的,所以需要先配置freemarkerConfig,前缀保存在freemarkerConfig中。
<!-- html视图解析器 必须先配置freemarkerConfig,注意html是没有prefix前缀属性的-->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath">
<value>/WEB-INF/views/</value>
</property>
</bean>
<bean id="htmlviewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".html" />
<property name="order" value="0"></property>
<property name="contentType" value="text/html;charset=UTF-8"></property>
</bean>
c.第三种在spring-mvc.xml中添加下面代码:
<mvc:resources location="/" mapping="/**/*.html"/>