今朝做项目标时辰,要经由过程ajax去后台取得与Freemarker模板整合过的数据。于是就写了如许的一个类。
import java.io.StringWriter;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import freemarker.template.Configuration;
import freemarker.template.Template;
/**
* 自定义导入模板解析类<br>
* <li>导入模板时衬着模板用</li>
*
* @author zbq
* @date 2010-05-28
*/
public class ScreenResolver {
/**
* Freemarker设备
*/
private FreeMarkerConfigurer freemarkerConfigurer;
public FreeMarkerConfigurer getFreemarkerConfigurer() {
return freemarkerConfigurer;
}
public void setFreemarkerConfigurer(
FreeMarkerConfigurer freemarkerConfigurer) {
this.freemarkerConfigurer = freemarkerConfigurer;
}
/**
* 衬着视图, 将数据归并至模板中.
*
* @param ftlName
* @param model
* @return String
* @throws Exception
*/
public String mergeModelToTemlate(String ftlName, Map<String, Object> model)
throws Exception {
Template template = null;
StringWriter swriter = new StringWriter();
Configuration configuration = freemarkerConfigurer.getConfiguration();
template = configuration.getTemplate("/demo.ftl");
template.process(model, swriter);
return swriter.toString();
}
}
下面是xml文件中的Freemarker的设备,要导入到上方ScreenResolver类中
<!-- Freemarker设备 -->
<bean id="freemarkerConfigurer"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="freemarkerSettings">
<props>
<prop key="template__delay">0</prop>
<prop key="defaultEncoding">UTF-8</prop>
<prop key="number_format">0.##########</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:Ss</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:Ss</prop>
<prop key="classic_compatible">true</prop>
</props>
</property>
</bean>