PDF生成(三)freemarker 的list 处理

freemarker 处理 list 其实是很方便的。用 “<#list as >
这里用JSON数据作一个演示。具体生成步骤请参看PDF(一),这里仅仅贴出有关例子。java 中参数组装如下:

        Map<String, Object> paraMap = new HashMap<String, Object>();
        JSONArray test = new JSONArray();
        for (int i = 1; i < 5; i++) {
            JSONObject para = new JSONObject();
            para.put("name", "王"+i+"明");
            para.put("address", "人民路"+i+"号");
            para.put("age", "10岁");
            test.add(para);
        }
        paraMap.put("test", test);

HTML模板如下:

<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312"></meta>
<meta name=Generator content="Microsoft Word 15 (filtered)"></meta>
</head>
<body lang=ZH-CN style='text-justify-trim:punctuation'>

<div class=WordSection1 style='layout-grid:15.6pt'>

<#if test ??>
    <#list test as x>
<table>
<tr>
  <td>姓名</td>
  <td>
      <#if (x.name)??>
        ${x.name}
      </#if>
  </td>

  <td>年龄</td>
  <td>
      <#if (x.age)??>
        ${x.age }
      </#if>
  </td>

  <td>地址</td>
  <td>
    <#if (x.address)??>
        ${x.address}
    </#if>
  </td>
 </tr>
    </#list>
</#if>
</table>
</div>
</body>
</html>

生成PDF如下”

姓名 王1明 年龄 10岁 地址 人民路1号 
姓名 王2明 年龄 10岁 地址 人民路2号 
姓名 王3明 年龄 10岁 地址 人民路3号 
姓名 王4明 年龄 10岁 地址 人民路4号

说明: list也可以嵌套,给个空样式,没有例子

<#list one as x>
    <#list x.element as y>
        相关操作,如打印y的某个属性:${y.name}
    </#list>
</#list>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值