FreeMarker语法指南
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
Freemarker - 几个比较实用的例子 - -
用Freemarker做模本语言有一段时间了,列出几个和JSP或者Velocity相比起来比较方便的用途,目的是引诱更多的人跳上Freemarker这个贼船,
1. String内置的JavaScript转换: js_string
用途:用于JavaScript转义,转换',",换行等特殊字符
模板:
<script>
alert("${errorMessage?js_string}");
</script>
输出:
<script>
alert("Readonly\'s pet name is \"Cross Bone\"");
</script>
2.内置的默认值处理:default
用途: 用于处理默认值
模本:
User: ${userLogin.name?default("Anonymous")}
<td>${(employee.department.manager.name)?default(" ")}</td>
输出:
User: Anonymous
<td> </td>
注,可以对整个对象树加上(),再用内置处理器这种方便的做法,偶也是最近刚学会的,以前一直用很傻的方法做.....
3. Sequence内置的计数器: xxx_index
用途:显示序号
模板:
<#list employees as e>
${e_index}. ${e.name}
</#list>
输出:
1. Readonly
2. Robbin
4. Sequence内置的分段器: chunk
用途:某些比较BT的排版需求
模板:
<#assign seq = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']>
<#list seq?chunk(4) as row>
<ul>
<li><#list row as cell>${cell} </#list></li>
</ul>
</#list>
<#list seq?chunk(4, '-') as row>
<tr>
<td><#list row as cell>${cell} </#list></td>
</tr>
</#list>
输出:
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
</ul>
<ul>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>
<ul>
<li>i</li>
<li>j</li>
</ul>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
<td>d</td>
</tr>
<tr>
<td>e</td>
<td>f</td>
<td>g</td>
<td>h</td>
</tr>
<tr>
<td>i</td>
<td>j</td>
<td>-</td>
<td>-</td>
</tr>
FreeMarker语法指南相关推荐
- protobuf3 自定义option_Protobuf3 语法指南
以前我翻译了 Protobuf2 语法指南,现在 千念飞羽把protobuf3的语法指南也翻译了,我也转载一下,读者可以有个参考. 译文地址是: Protobuf3语言指南. 英文原文: Langua ...
- ProtoBuf3语法指南(Protocol Buffers)_下
0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.A ...
- ProtoBuf3语法指南(Protocol Buffers)_上
0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.序 ...
- protobuf3 自定义option_ProtoBuf3语法指南(Protocol Buffers)_下
0.说明 ProtoBuf3语法指南, 又称为proto3, 是谷歌的Protocol Buffers第3个版本. 本文基于官方英文版本翻译, 加上了自己的理解少量修改, 一共分为上下两部分. 1.A ...
- Freemarker语法2
Freemarker语法详解 2018年07月10日 19:43:35 qq_31351071 阅读数:155 FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...
- c++的armadillo库语法指南
c++的armadillo库语法指南 众所周知,armadillo库是一个很好的矩阵库,为了方便大家使用,给大家写了一份入门语法,可以留作使用. 初始化矩阵 mat A(2,3); 输出第n列/行 c ...
- freemarker语法总结
用了一年多的freemarker,用得多了,碰到的语法就越来越多,觉得有必要做一个总结,总结我所见到且有用的,这个语法总结以后碰到新的freemarker语法也会更新进来,也算是做笔记了,好记性不如烂 ...
- IDEA打开html页面不识别freemarker语法问题
IDEA中html页面不识别freemarker语法 解决:Ctrl+Alt+S 打开settings --> Editor --> File Types --> FreeMarke ...
- armv8 汇编 绝对地址赋值_GNU风格 ARM汇编语法指南(非常详细)
GNU风格 ARM汇编语法指南(非常详细) 汇编源程序一般用于系统最基本的初始化:初始化堆栈指针.设置页表.操作ARM的协处理器等.这些初始化工作完成后就可以跳转到C代码main函数中执行. 1.GN ...
最新文章
- 微信支付(JSAPI) - chooseWXPay fail 问题解决
- 【转】Dynamics CRM 365零基础入门学习(四)Dynamics 使用profiler插件调试流程
- java获取上周一_java 获取昨天,上个星期一,本月开始时间戳,怎么写呢?
- ftp网页服务器不允许匿名登录,我的FTP服务器不让匿名登陆,怎么办?
- Andrew NG 机器学习编程作业3 Octave
- cocos2dx标准容器_cocos2dx基础篇(5)——浅析几个重要类
- WinRAR 去除广告
- 「Linux」- 如何突破网络下载限速? @20210216
- 汇编语言中的start有什么用?(start只是一个标号,程序不一定非要从这儿才开始执行)
- 2021,自动驾驶的“五代十国”
- 哪款蓝牙耳机降噪效果好?降噪效果好的蓝牙耳机排行榜
- android studio如何多moudle依赖同一个gradle配置
- element-ui的文本框 input加㎡平方米符号
- Navicat还原nb3备份文件步骤
- CentOS7 安装 CMake 解决 cmake command not found 问题
- Flutter - 记录遇到的一些问题
- 新高考计算机科学与技术,2017年浙江新高考:“技术科目”成“黑马”
- 二分查找的相关内容(详细)
- 【软件工具类】常用科研办公软件工具汇总
- Jedis 使用详解(官方原版)
热门文章
- Java 并发编程系列之闭锁(CountDownLatch)
- OpenCASCADE:Open CASCADE Application Framework (OCAF)的简介
- wxWidgets:使用自定义对话框和 sizer
- wxWidgets:wxDatePickerCtrl类用法
- boost::range模块实现map_keys相关的测试程序
- boost::::adaptors::indexed::indexed相关的测试程序
- boost::python::converter::arg_to_python相关的测试程序
- boost::hana::detail::type_at用法的测试程序
- boost::icl::split_interval_set用法的测试程序
- boost::geometry::within用法的测试程序