如下的一个模板文件,如何写对应的代码(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;
}
}
相关推荐
基于Freemarker模板的纯Java代码实现的代码生成器工具
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...
Freemarker是模板引擎,也可以说是一种...开发人员只要熟悉Struts2的标签即可进行开发Freemarker模板文件,如果您还不熟悉具体的Struts2及标签应用请参考其他文献资料,本文主要阐述Struts2与Freemarker的配置方法。。
freemarker模板生成例子 可以根据表名生成其增删改查方法以及jsp页面,基于spirng,spring-mvc,mybatis .使用前请更改jdbc配置文件下的项目路径和数据库,生成后需要将controller上方注释复制到mybatisconfig中对应...
myeclipse freemarker编辑器模块工具 包括freemarker模板编辑器插件、freemarker编辑器模板说明文档。myeclipse8.5测试OK
freemarker java模板技术 很详细的注释 适合初学者,了解思路
众所周知,struts2宣称freemarker模板中不再支持自定义标签,但如果工程UI仅用freemarker模板可以通过扩展struts标签简单实现,不是采用官方不推荐的配置JspSupportServlet实现的!内付详细说明及范例,此方法仅为团队...
template文件夹下放入xml模板,运行Test.java文件,可以生成word文档
FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员...
Substitute 是一个处理 Freemarker 模板的工具,它以模板和环境配置作为输入并返回处理后的模板。 先决条件 Java JDK Maven Unix 风格的操作系统。 在 Linux(Fedora、RHEL)上测试 快速开始 克隆 Git 存储库: ...
FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员...
... 增加一些定制和扩展,修改为基于MAVEN的格式。整体架构保持不变。 增加的特性为: 支持表名想去,参考配置文件中的tableRemovePrefixes 支持列名想去,参考配置文件中的...其他一些模板使用上的修改,参考模板目录
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...
Freemarker页面语法 A 概念 最常用的 3 个概念 sequence 序列,对应java 里的list 、数组等非键值对的集合 hash 键值对的集合 namespace 对一个ftl 文件的引用, 利用这个名字可以访问到该ftl 文件的资源 ...
即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
< dependency> < groupId>org.eluder.freemarker</ groupId> < artifactId>freemarker-ext</ artifactId> < version>0.9.2</ version></ dependency>HTML转义Freemarker是通用模板引擎,这意味着它的范围不仅限于...
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...
项目名称:轻量级Java持久层框架MiniDAO...MiniDAO致力于简化数据访问层代码,通过FreeMarker模板提供灵活的SQL管理方式,同时继承了Spring JDBC的易用性和高效性,为Java开发者提供了一个简洁、高效的持久层解决方案。