有这样一个数据结构List<Map<String, Object>> items = ...,需求是将这个List中的数据映射到一个xml文件中。技术用到freemaker。使用freemaker的目的就是使得数据和数据的展现形式分离。
1.程序如下:
List<Map<String, Object>> items = ...
Map<String, Object> root = new HashMap<String, Object>();
root.put("taskId", taskId + "");
root.put("items", items);
root.put("tasks", tasks);
java.io.StringWriter w = new StringWriter();
temp.process(root, w);
2.模板如下:
<?xml version="1.0" encoding="utf-8" ?>
<function id="${taskId}" name="default" desc="默认配置文件">
<#if items?size != 0>
<#list items as item>
<item key="${item["ITEMKEY"]}" value="${item["ITEMNAME"]}" desc="${item["ITEMDESC"]?if_exists}" />
</#list>
</#if>
<#list tasks as task>
<component id="${task["PROGRAMID"]}" name="${task["TASKNAME"]}" desc="${task["TASKNAME"]?if_exists}">
<#if task["items"]?size != 0>
<#list task["items"] as item>
<item key="${item["ITEMKEY"]}" value="${item["ITEMNAME"]}" desc="${item["ITEMDESC"]?if_exists}" />
</#list>
</#if>
</component>
</#list>
</function>
3.生成的xml文件按如下:
<?xml version="1.0" encoding="utf-8" ?>
<function id="8001" name="default" desc="默认配置文件">
<item key="sender" value="dy.cn" desc="发件人姓名" />
<item key="server" value="mail.n" desc="服务器地址" />
<item key="user" value="n" desc="用户名" />
<item key="password" value="n" desc="密码" />
<item key="subject" value="警" desc="题" />
<item key="receiverlist" value=""
desc="" />
<item key="defaultproduct" value="1" desc="组" />
<item key="mobilelist" value="13812345678" desc="表" />
<component id="GatewayStateRule" name="GatewayStateRule"
desc="规则">
<item key="duration" value="600" desc="时长" />
<item key="mode" value="1,2" desc="邮件" />
<item key="times" value="3" desc="数" />
<item key="interval" value="3" desc="报" />
<item key="message" value="信息" />
<item key="alertedtimes" value="0" desc="数" />
<item key="lastalerttime" value="1978-1-1 00:00:00" desc="间" />
</component>
</function>
分享到:
相关推荐
NULL 博文链接:https://jsjxqjy.iteye.com/blog/2072705
Freemarker中遍历list集合实例
@RequestMapping(/freemarker) @Controller public class FreemarkerController { //测试1 @RequestMapping(/test1) public String test1(Model model){ //向数据模型放数据 model.addAttribute(name,三年二班)...
PLUS:若表格之外还有嵌套的循环,也需要用<#list table as map></#list>,注意这里的<#list></#list>标签不要和某对其他标签交叉,不可以出现<#list><w:p></#list>这种 6. 标识替换完之后,另存为.ftl后缀文件...
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。
s2sh+freemarker+jquery+jquery-treeview 无限级树形菜单
下面小编就为大家带来一篇jquery ajax后台返回list,前台用jquery遍历list的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
if的嵌套前段时间一直没有用过,用这个小例子看。能够很好理解 主要注意:()>这个括号
java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203
比较好的描述freemarker的list的文章
NULL 博文链接:https://zhousheng193.iteye.com/blog/1129664
生成二维码图片. 使用word模板批量生成word. 使用freemarker的list遍历数据。
最近在做一个出卷系统,需要通过试卷模板从数据库中抽取题目,然后按照模板的样式生成完整的试卷,包括试卷格式的排版和图片的写入。这是用freemarker模板生成word文档。里面包括完整代码和所需jar包。
FreeMarker单元格合并,填充数据,遍历表格
用freemarker 来导出Excel 会简单很多。并且可以导出各种复杂表格,本示例带单元格内换行功能,项目中亲测可以使用,欢迎大家下载使用!
使用FTL标签时, 应该有正确的嵌套,而不是交叉使用,这和XML标签的用法完全一样.如果全用不存在的指令,FreeMarker不会使用模板输出,而是产生一个错误消息.FreeMarker会忽略FTL标签中的空白字符.值得注意的是, /> 和...
这是一个java项目 下载这个示例 轻松搞定FreeMarker 包括: FreeMarker 解析javabean FreeMarker 解析map FreeMarker 解析list include标签用法
Freemarker页面语法 A 概念 最常用的 3 个概念 sequence 序列,对应java 里的list 、数组等非键值对的集合 hash 键值对的集合 namespace 对一个ftl 文件的引用, 利用这个名字可以访问到该ftl 文件的资源 ...
安装freemarker插件(freemarker的eclipse插件) a) 首先下载 freemarker-ide-0.9.14.zip(在这里不用下载了,附件中已经有了) b) 解压后:把hudson.freemarker_ide_0.9.14这个文件放到:eclipse\plugins下面 c) 发现...