1. 程式人生 > >springMVC配置jsp/html視圖解析器

springMVC配置jsp/html視圖解析器

tor RKE -- 2.3 template view 必須 中文亂碼 版本

目錄

  • 1、maven項目引入freemark相關jar包
  • 2、freemarker.properties
  • 3、配置視圖解析器

參考自springMVC配置jsp、html多視圖解析器,本文稍作補充

1、maven項目引入freemark相關jar包

freemaker是以個模板引擎,可以根據提供的數據和創建好的模板,去自動的創建html靜態頁面。所以在返回html視圖時可以用這個引擎結合數據生成html靜態頁面。

<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context-support</artifactId>
  <version>5.0.7.RELEASE</version>
</dependency>

<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.28</version>
</dependency>

註意freemarker版本,如果版本過低的話可能會有java.lang.NoSuchMethodError: freemarker.template.Configuration.

2、freemarker.properties

在src/main/resources下新建freemarker.properties配置文件,主要為了解決freemarker返回HTML頁面中文亂碼問題

tag_syntax=auto_detect  
template_update_delay=60  
default_encoding=UTF-8  
output_encoding=UTF-8  
locale=zh_CN  
date_format=yyyy-MM-dd  
time_format=HH:mm:ss  
datetime_format=yyyy-MM-dd HH:mm:ss  
classic_compatible=true  
template_exception_handler=ignore  

3、配置視圖解析器

在springmvc.xml中配置jsp、html的視圖解析器。註意一點是,InternalResourceViewResolver必須總是賦予最低的優先級(最大的order值),因為不管返回什麽視圖名稱,它都將解析視圖。如果它的優先級高於其它解析器的優先級的話,它將使得其它具有較低優先級的解析器沒有機會解析視圖。

<bean id="freemarkerConfiguration"
      class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="location" value="classpath:freemarker.properties" />
</bean>
<!-- html視圖解析器 必須先配置freemarkerConfig,註意html是沒有prefix前綴屬性的 -->
<bean id="freemarkerConfig"
      class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="freemarkerSettings" ref="freemarkerConfiguration" />
    <property name="templateLoaderPath">
        <value>/WEB-INF/html/</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>


<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"></property>
    <property name="suffix" value=".jsp"></property>
    <property name="order" value="2"></property>
</bean>

springMVC配置jsp/html視圖解析器