方法一
<!-- html视图解析器 必须先配置freemarkerConfig,注意html是没有prefix前缀属性的 -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/html/"/>
<property name="defaultEncoding" value="utf-8"/>
</bean>
<bean id="htmlViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>
<property name="contentType" value="text/html;charset=utf-8"/>
<property name="cache" value="true"/>
<property name="suffix" value=".html"/>
<property name="order" value="0"/>
</bean>
<!--3.配置jsp视图解析器-->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--配置jstl的视图解析-->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
<property name="order" value="0"/>
</bean>
使用freemaker作为html的视图解析器,InternalResourcceViewResolver作为jsp的视图解析器
freemaker需要导入的jar
<!-- freemarker jar包 -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>
注意:
- 配置freemaker的html视图解析器之前需要首先配置freemarker的路径。该路径中的templateLoderPath相当于视图解析器中的前缀。因此freemaker的视图解析器中是没有prefix属性。
- 配置freemarker视图解析器时要有viewClass属性
- 优先级问题:需要总是把InternalResourcceViewResolver放在freemarker后边,并且优先级设置相同,不然只能对同一个文件夹下的.html和.jsp文件生效(),对不同文件夹下的.html和.jsp总是使用优先级高的视图解析器去解析。
方式二:
html和jsp都使用InternalResourcceViewResolver作为视图解析器,配置两个InternalResourcceViewResolver,一个针对html,一个针对jsp,这种情况下也需要把两个视图解析器的优先级设置相同,并且这种情况仅在.html和.jsp文件在同一个目录路径下时才会起作用,对不同文件夹下的.html和.jsp也会总是使用优先级高的视图解析器去解析。