springmvc整合freemarker,使用ftl檔案
阿新 • • 發佈:2019-01-31
0、需要一個已經配置好的springmvc專案,這裡就不多費口舌了
1、引入jar包:maven,一說還需要引入spring-context-support包
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
2、springmvc的配置檔案,原始檔案修改
<!-- 定義檔案的位置 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="order" value="1"/><!-- 增加一個屬性,如果找不到freemarker的模版則走原始的 --> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
3、springmvc的配置檔案,新增加
<!-- freemarker的配置 --> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <!-- 模版位置,這裡配置了下面就不用配了 --> <property name="templateLoaderPath" value="\WEB-INF\template" /> <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> <!-- freeMarker檢視解析器 --> <bean id="freemarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" /> <property name="viewNames" value="*.ftl" /> <property name="contentType" value="text/html; charset=utf-8" /> <property name="cache" value="true" /> <property name="suffix" value="" /> <!-- 作用百度即可 <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" /> <property name="exposeSpringMacroHelpers" value="true" /> --> <!-- 檢視先走這個freemarker的,再走原始的 --> <property name="order" value="0" /> </bean>
4、java程式碼:
@RequestMapping("freemarkerTest")
public String getFirstPage(Model model) {
model.addAttribute("test", "my name is freemarker");
return "hello.ftl";
}
5、在上面配置的/WEB-INF/template/目錄下面新建hello.ftl檔案。
ps:idea原生支援ftl檔案,eclipse好像需要外掛
格式什麼的和jsp還挺像,網上隨便一搜一大把
<html> <head> <title>Insert title here</title> </head> <body> ${test} </body> </html>
6、啟動服務,localhost:8080/專案名/freemarkerTest 即可