`
happyqing
  • 浏览: 3163528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

整合Freemarker模板返回字符串

阅读更多

今朝做项目标时辰,要经由过程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>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics