在使用 FreeMarker 模板引擎来生成文件时,经常会使用到 list 标签用于循环生成。

有时会遇到需要处理末尾符号的情况,比如 Json 文件,循环生成的标签中末尾是不需要 , 的,例如:

"points": [
{
"x": 1,
"y": 1
},
{
"x": 2,
"y": 2
}
]

此时可以用 list 标签内置的 has_next 属性处理:

"points": [
<#list pointList as point>
{
"x": ${point.x},
"y": ${point.y}
}<#if point_has_next>,</#if>
</#list>
]

注意:has_next 属性前的名称必须为循环的单项名称,比如上面的 point。

FreeMarker 去除循环末尾的符号的更多相关文章

  1. JS去除字符串拼接末尾的符号(逗号)

    前言:在JS中,有时需要进行字符串的拼接,而拼接的字符串以某种符号分隔,在拼接好的字符串末尾会多出一个分隔符,这时我们可以采取以下几种方法来去除末尾的分隔符. 方法一:使用substring()  和 ...

  2. python 去除字符串末尾的子串

    建议使用 "字符串".replace("要去除的字符串", "") 尽量不要使用 strip() ,有时会引入意想不到的结果.strip() ...

  3. Freemarker的循环通过assign指令引入计数变量

    这里是一个jeecms框架的前台的一个内容列表集,因为不是每个内容子项符合要求,而且需要统计符合要求的子项个数,仿照java的for循环,需要在循环前声明一个计数变量,这就需要使用Freemaker的 ...

  4. 去除Bigdecimal末尾的.00

    String total = new BigDecimal("100.00").stripTrailingZeros().toPlainString();

  5. Freemarker 输出$和html标签等特殊符号

    场景:程序员都不喜欢看文档,而更喜欢抄例子.所以,我们把平台组的组件都做成例子供别人参考.我们前端展示层使用的是freemarker,所以 遇到这个问题,比如我们要让前端显示freemarker自己的 ...

  6. 【转】Freemarker输出$和html标签等特殊符号

    原文:http://blog.csdn.net/achilles12345/article/details/41820507 场景:程序员都不喜欢看文档,而更喜欢抄例子.所以,我们把平台组的组件都做成 ...

  7. Recurrent Neural Networks(RNN) 循环神经网络初探

    1. 针对机器学习/深度神经网络“记忆能力”的讨论 0x1:数据规律的本质是能代表此类数据的通用模式 - 数据挖掘的本质是在进行模式提取 数据的本质是存储信息的介质,而模式(pattern)是信息的一 ...

  8. 0912 for循环及内置方法

    目录 for 循环 1.循环 2.循环取值 3.range 4.for + break 5.for+continue 6.for + else 数字类型内置方法 整型 浮点型 字符串 1.作用 2.作 ...

  9. Linux shell循环

    条件测试 格式 test condition 或 [ condition ] 使用方括号时,要注意在条件两边加上空格,如果有操作符,运算符之间也必须有空格 测试状态:测试的结果可以用$?的值来判断,0 ...

  10. 《ArcGIS Engine+C#实例开发教程》第七讲 图层符号选择器的实现2

    原文:<ArcGIS Engine+C#实例开发教程>第七讲 图层符号选择器的实现2 摘要:在第七讲 图层符号选择器的实现的第一阶段中,我们完成了符号选择器窗体的创建与调用.在第二阶段中, ...

随机推荐

  1. NodeJS内存泄露

    p.p1 { margin: 0; font: 13px "Helvetica Neue"; color: rgba(0, 0, 0, 1) } p.p2 { margin: 0; ...

  2. 二十一: Mysql 锁机制

    Mysql 锁机制 事务的 隔离性 由这章讲述的 锁 来实现. 1. 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤 ...

  3. Java static 关键字的使用 小练习

    1 package com.bytezreo.statictest2; 2 3 /** 4 * 5 * @Description static 关键字的使用 小练习 6 * @author Bytez ...

  4. vue3在typescript下对props类型判断

    使用vue3.0 对 props 进行复杂类型验证的时候,可以直接用 PropType 进行强制转换: callback: Function as PropType<()=>void> ...

  5. Nginx 打不开 80端口占用 netstat -aon|findstr "80" 看有没有80占用 有的话 net stop http

    Nginx 打不开 80端口占用 netstat -aon|findstr "80" 看有没有80占用 有的话 net stop http

  6. Educational Codeforces Round 141:C. Yet Another Tournament

    一.来源:Problem - C - Codeforces 二.题面 三.思路 读题: 其他人的胜场由位次决定,对于第i位,其胜场为i-1 人数为\(5·10^5\),不是5(看错了) 每个人和自己比 ...

  7. IDEA或Android Studio用书签功能标识代码

    原文地址:IDEA或Android Studio用书签功能标识代码 | Stars-One的杂货小窝 在之前的维护工作中,有时候翻源码的时候,找到了一个文件的某行关键,之后一层层进去之后,又突然不记得 ...

  8. day11-2-内置Tomcat的配置和切换

    SpringBoot内置Tomcat的配置和切换 1.基本介绍 SpringBoot支持的webServer:Tomcat,Jetty,Undertow 因为在spring-boot-starter- ...

  9. Java 学习分享

    建议语言入门可以先看看视频,学习网站可以是github,极客时间,infoQ等,然后去看书深入研究学习.学习最有效的方式一定是自己动手写代码,而不是看别人的代码,自己下载Intelli Idea多敲敲 ...

  10. java的接口和抽象类区别

    转自:深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在 ...