首先需要添加freemarker.jar到項目,如果項目中有spring或者spirngmvc,需要整合,首先配置freemarkerConfig,代碼結構如下:
<!-- 設置freeMarker的配置文件路徑 --> <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value="classpath:freemarker.properties" /> </bean> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="freemarkerSettings" ref="freemarkerConfiguration" /> <property name="templateLoaderPath"> <value>/WEB-INF/freemarker/</value> </property> <property name="freemarkerVariables"><!--設置一些常用的全局變量--> <map> <entry key="xml_escape" value-ref="fmXmlEscape" /> <entry key="webRoot" value="/shop"></entry> <entry key="jsRoot" value="/shop/js"></entry> </map> </property> </bean>
其中一下代碼是用來掃描.ftl的模板文件,在/web-info/freemarker目錄中
<property name="templateLoaderPath"> <value>/WEB-INF/freemarker/</value> </property>
然后freemarker用ftl文件來呈現視圖,這時候就需要配置freemarker的視圖解析器,代碼如下:
<!-- 配置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" /> --> <property name="order" value="0" /> </bean> <!-- 對模型視圖名稱的解析,即在模型視圖名稱添加前后綴 通用解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="" /> <property name="viewNames" value="*.html,*.jsp" /> <property name="suffix" value=