springmvc的视图渲染
InternalResourceViewResolver:这是一个最常用的解析器。通常使用它指定渲染对象为jsp/html页面
FreeMarkerViewResolver:这就是Spring与Freemarker整合需要用到的解析器 可以渲染ftl/html页面
以下为配置详情
<!-- 传统视图模块 与 FreeMarker视图模块兼容问题 可以通过设置优先级来区分(property name="order") 会先排查优先级高的
文件存放位置通过前缀路径不同来区分 切记对于jsp和html文件命名不要有重复 --><!-- 传统视图模块 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/pagejsp/" />
<property name="suffix" value=".jsp" /> <!-- 跳转jsp -->
<!-- <property name="suffix" value=".html" /> --> <!-- 传统跳转html -->
<property name="order" value="1" /> <!-- 设置优先级 1优先级低 0优先级高-->
</bean>
<!-- html 视图模块 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="viewClass">
<value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
</property>
<property name="cache"><value>true</value></property>
<!-- 这里需要注意一下,我注释了下面这样一行代码,这行代码的意思就是指引freemarker需要解析的文件的位置。注释掉原因是因为
applicationContext.xml里有这样一行代码:<property name="templateLoaderPath" value="/WEB-INF/views/" /> 已经指定了视图位置。如果我们这里依然保留下方代码,页面回报406的找不到的错误
<property name="prefix"><value>/WEB-INF/pages/</value></property> -->
<property name="suffix"><value>.html</value></property>
<property name="contentType">
<value>text/html; charset=UTF-8</value>
</property>
<property name="order" value="0"/><!-- 设置优先级 -->
</bean>
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/pagehtml/" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">0</prop>
<prop key="default_encoding">UTF-8</prop>
<prop key="number_format">0.##########</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="classic_compatible">true</prop>
<prop key="template_exception_handler">ignore</prop>
</props>
</property>
</bean>