0 0

freemarker 模板配置0

如下的一个模板文件,如何写对应的代码(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;
}
}
2014年2月07日 11:36

1个答案 按时间排序 按投票排序

0 0

采纳的答案

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

2014年2月07日 13:28

相关推荐

    基于Freemarker模板的代码生成器工具

    基于Freemarker模板的纯Java代码实现的代码生成器工具

    FreeMarker模板包括dto、dao、rowmapper、bo、service

    FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...

    Struts2 与Freemarker 的配置方法

    Freemarker是模板引擎,也可以说是一种...开发人员只要熟悉Struts2的标签即可进行开发Freemarker模板文件,如果您还不熟悉具体的Struts2及标签应用请参考其他文献资料,本文主要阐述Struts2与Freemarker的配置方法。。

    freemarker模板生成例子

    freemarker模板生成例子 可以根据表名生成其增删改查方法以及jsp页面,基于spirng,spring-mvc,mybatis .使用前请更改jdbc配置文件下的项目路径和数据库,生成后需要将controller上方注释复制到mybatisconfig中对应...

    myeclipse freemarker编辑器模板插件及配置说明

    myeclipse freemarker编辑器模块工具 包括freemarker模板编辑器插件、freemarker编辑器模板说明文档。myeclipse8.5测试OK

    freemarker java模板技术 很详细的注释

    freemarker java模板技术 很详细的注释 适合初学者,了解思路

    在struts2的freemarker模板中扩展struts标签

    众所周知,struts2宣称freemarker模板中不再支持自定义标签,但如果工程UI仅用freemarker模板可以通过扩展struts标签简单实现,不是采用官方不推荐的配置JspSupportServlet实现的!内付详细说明及范例,此方法仅为团队...

    freemarker根据word模板生成word的完整示例

    template文件夹下放入xml模板,运行Test.java文件,可以生成word文档

    SpringBoot+FreeMarker模板引擎demo

    FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员...

    jbss-substitute:Freemarker 模板的替代工具

    Substitute 是一个处理 Freemarker 模板的工具,它以模板和环境配置作为输入并返回处理后的模板。 先决条件 Java JDK Maven Unix 风格的操作系统。 在 Linux(Fedora、RHEL)上测试 快速开始 克隆 Git 存储库: ...

    FreeMarker+SpringBoot模板引擎demo

    FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员...

    免费下载半自动化Java代码生成器项目(利用freemarker模板生成)

    ... 增加一些定制和扩展,修改为基于MAVEN的格式。整体架构保持不变。 增加的特性为: 支持表名想去,参考配置文件中的tableRemovePrefixes 支持列名想去,参考配置文件中的...其他一些模板使用上的修改,参考模板目录

    FreeMarker

    FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...

    freemarker语法完整版

    Freemarker页面语法 A 概念 最常用的 3 个概念 sequence 序列,对应java 里的list 、数组等非键值对的集合 hash 键值对的集合 namespace 对一个ftl 文件的引用, 利用这个名字可以访问到该ftl 文件的资源 ...

    Freemarker模板

    即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

    freemarker-ext:Freemarker模板引擎的扩展

    &lt; dependency&gt; &lt; groupId&gt;org.eluder.freemarker&lt;/ groupId&gt; &lt; artifactId&gt;freemarker-ext&lt;/ artifactId&gt; &lt; version&gt;0.9.2&lt;/ version&gt;&lt;/ dependency&gt;HTML转义Freemarker是通用模板引擎,这意味着它的范围不仅限于...

    Java开发的HTML/文本模板引擎:FreeMarker 2.3.30 下载

    FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...

    FreeMarker官方手册

    FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...

    轻量级Java持久层框架MiniDAO:基于SpringJDBC与FreeMarker的源码实现

    项目名称:轻量级Java持久层框架MiniDAO...MiniDAO致力于简化数据访问层代码,通过FreeMarker模板提供灵活的SQL管理方式,同时继承了Spring JDBC的易用性和高效性,为Java开发者提供了一个简洁、高效的持久层解决方案。

Global site tag (gtag.js) - Google Analytics