freemarker 模板配置

问题描述

如下的一个模板文件,如何写对应的代码(java),请知道的指点下<?xml version="1.0" encoding="UTF-8"?><File> <Head> <FileLength>00001849</FileLength> <FileTime>20130817112307</FileTime> <KeyIndex>0</KeyIndex> </Head> <Body> <#list Data as Data> <Data> <IMSI>${Data.IMSI}</IMSI> <#list CardOperTypes as CardOperTypes> <CardOperTypes><CardOperType CardOperTypeId="${CardOperTypes.CardOperTypeId}" CardOperTypeName="${CardOperTypes.CardOperTypeName}" /><CardOperType CardOperTypeId="${CardOperTypes.CardOperTypeIdConvert}" CardOperTypeName="${CardOperTypes.CardOperTypeName}" /> </CardOperTypes> </#list> </Data> </#list> </Body></File> 问题补充:下面我写的测试类;把模板中的 <#list CardOperTypes as CardOperTypes> <CardOperTypes> <CardOperType CardOperTypeId="${CardOperTypes.CardOperTypeId}" CardOperTypeName="${CardOperTypes.CardOperTypeName}" /> <CardOperType CardOperTypeId="${CardOperTypes.CardOperTypeIdConvert}" CardOperTypeName="${CardOperTypes.CardOperTypeName}" /> </CardOperTypes> </#list> 去掉是可以的,但加上就不行了,不知哪里有问题public class Test {@SuppressWarnings("unchecked")public static void main(String[] args) {Configuration cfg = new Configuration();File tpl = new File("D://work");//加载模板文件的目录try {cfg.setDirectoryForTemplateLoading(tpl);Map params = getParams();Template requestTemplate = cfg.getTemplate("1.xml");StringWriter out = new StringWriter();requestTemplate.process(params, out);System.out.println(out.toString());} catch (Exception e1) {e1.printStackTrace();}}private static Map getParams() {Map params = new HashMap();params.put("Head", head());params.put("Quantity", 2);params.put("Data", data());return params;}private static List<Map> data() {List<Map> data = new ArrayList<Map>();for(int i=0;i<1;i++){Map datadetail=new HashMap();datadetail.put("IMSI","460030400011007");datadetail.put("CARD", CardOperTypes());data.add(datadetail);}return data;}private static List<Map> CardOperTypes() {List<Map> CardOperTypes = new ArrayList<Map>();/*for(int i=0;i<4;i++){Map datadetail=new HashMap();datadetail.put("CardOperType",map());CardOperTypes.add(datadetail);}*/for(int i=0;i<1;i++){Map datadetail=new HashMap();datadetail.put("IMSIS","460030400011007");CardOperTypes.add(datadetail);}return CardOperTypes;}private static Map head() {Map head = new HashMap();head.put("FileVersion", "010000"); return head;}}

解决方案

需要把Data 这个集合放到变量里面,可以参考http://blog.csdn.net/kkdelta/article/details/7220252

时间: 2025-01-30 17:13:28

freemarker 模板配置的相关文章

Java: FreeMarker的配置和使用

初学什么都不可以忽略的地方就是这个东西的官方网站:http://freemarker.org/.下载或者API都可以参考这里. FreeMarker是什么 非常的简单明了.FreeMarker是一个java包.实现了MVC模式,分离开发者和设计师.也就是分离html也java的代码.   FreeMarker是如何工作的 这是官网的图.非常明确的说明了FreeMarker是如何运作的.首先需要有一个template模板,在那里就是一堆的html标签和一些专属FreeMarker的标签,这些标签之

Java操作FreeMarker模板引擎的基本用法示例小结_Android

FreeMarker 是一个采用 Java 开发的模版引擎,是一个基于模版生成文本的通用工具. 它被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序.虽然使用FreeMarker需要具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由 FreeMarker 生成页面,并通过模板显示准备的数据. http://freemarker.org/ public void process(String template, Map<String, ?> data) th

Java操作FreeMarker模板引擎的基本用法示例小结

FreeMarker 是一个采用 Java 开发的模版引擎,是一个基于模版生成文本的通用工具. 它被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序.虽然使用FreeMarker需要具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由 FreeMarker 生成页面,并通过模板显示准备的数据. http://freemarker.org/ public void process(String template, Map<String, ?> data) th

javascript-java+freemarker模板可视化编辑功能

问题描述 java+freemarker模板可视化编辑功能 想结合freemarker和java做一个模板可视化编辑的Demo,求高手大神解答.

freemarker模板中实现div包含元素的显示与隐藏

问题描述 小弟刚接触freemarker谁能帮个忙解决下问题!以前在JSP页面上用<selectname="select1"onchange="changeClick()"><optionvalue="1">aaa</option><optionvalue="2">bbb</option></select><divid="div1"

freemarker模板更改后如何自动修改静态页面

问题描述 我因项目需求将原有的freemarker模板进行了改变,但是其之前所生成的静态页面却没有改变..我想请问一下有没有高手可以指导一下我该如何改呢.. 解决方案 解决方案二:那你还得做一个功能,就是重新生成既有的页面.解决方案三:嗯这个我知道啊.但是现在的问题就是该如果去做啊..我不知道该怎样去写这个模块...你哪有源码吗可以给我看一下吗我这个主要是jsp跟freemarker的解决方案四:jsp的就不用说了吧,freemarker,去看freemarker的guide,说的很详细,用起来

基于Java的Spring框架来操作FreeMarker模板的示例_java

1.通过String来创建模版对象,并执行插值处理  import freemarker.template.Template; import java.io.OutputStreamWriter; import java.io.StringReader; import java.util.HashMap; import java.util.Map; /** * Freemarker最简单的例子 * * @author leizhimin 11-11-17 上午10:32 */ public cl

freemarker 模板引擎

模板引擎:根据模板与绑定的数据,生成最终的xml文本. java领域的表现层的三大模板引擎--jsp,velocity,freemarker.jsp,java server page. 官网:http://freemarker.org/ 1.依赖 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3

Android freemarker模板引擎应用

什么是freemarker? 在说这个之前我们都知道web和原生控件之争就那么点事.性能,加载速度,流量,数据交互-. 如果我用webView加载一个url页面,要先通过网络解析css,解析html代码,然后渲染生成页面 什么是freemarker?简单点就是,事先把上面这个html文件,放到应用中,用的时候只要传入数据就行 freemarker优点和应用 节约流量,加快网页加载速度 比如某些图表功能,用js库实现比较方便,只要事先放入html模板,传入数据就行.大大节省了流量及加载速度 或者事