springMVC配置jsp/html檢視解析器
阿新 • • 發佈:2019-01-06
目錄
參考自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>