本文基于 spring mvc 2.5.5 ,Freemarker2.3.14实现地址全路径,通常就是配置一个全局变量,供所有Freemarker文件调用。
在网上查了好久,希望在spring mvc启动时,加载几个Freemarker应用级常量。
简单方法,直接在spring mvc中配置。直接看代码。
<bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value="classpath:resources/freemarker.properties"/> </bean> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <!-- 直接将Freemarker.propertyies写在单独的.properties注入进来 --> <property name="freemarkerSettings" ref="freemarkerConfiguration"/> <property name="templateLoaderPath" value="/WEB-INF/ftl/" /> <!-- 全局变量部分 --> <property name="freemarkerVariables"> <map> <entry key="xml_escape" value-ref="fmXmlEscape" /> <entry key="webRoot" value="${webRoot}" /> <entry key="cssRoot" value="${cssRoot}" /> <entry key="jsRoot" value="${jsRoot}" /> </map> </property> <property name="defaultEncoding" value="utf-8" /> </bean> <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />
${webRoot},我在资源文件中的配置是 webRoot=http://localhost:8080/
这样在ftl文件中直接使用这个全局变量啦。