Freemaker的了解
freemarket 模板技术
与web容器没什么关系
可以用struct2作为视图组件
第一步导入jar包
项目目录下建立一个templates目录
在此目录下建立一个模板文件a.ftl文件
Java代码
创建实例 –创建模板目录—创建数据模型(树状的)--加载模板文件--- 生成数据(需要一个输出流)
import java.io.File; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map;
import freemarker.template.Configuration; import freemarker.template.Template;
public public //创建freemarker配置实例 Configuration cfg=new Configuration(); //创建模板目录 cfg.setDirectoryForTemplateLoading(new File("templates"));
//创建数据模型 Map root=new root.put("user", "老程"); //加载模板文件 Template t1=cfg.getTemplate("a.ftl");
//显示生成的数据//将map里的数据和模板合并到一起 Writer out=new OutputStreamWriter(System.out); t1.process(root, out); out.flush(); out.close();
} } |
<#if user=="老高">我们的老师</#if>
数据类型
Gt大于
Gte大于等于
遍历集合
<#list lst as dizi>
<b>${dizhi..}</b><br/>
</#list>
包含指令
<#include "filename"/>
定义宏指令
<#macro ml>
<b>aaabb</b>
<b>aaabb</b>
</#macro>
调用宏:<@ml />
也可传递参数,并对带参数操作
Nested指令
<#macro border >
<table border=4 cellspacing=0 cellpadding=4><tr><td>
<#nested>
</td></tr></table>
</#macro>
<@border > 表格中的内容</@border>
<#assign mail="111.cpm">定义变量的
命名空间
<#improt "filename" as bb/>
可以通过 in bb 给bb里的东西赋值
时间对象的格式化
${date?string("yyyy-MM-dd HH:mm:ss")}
FreeMarker提供两个运算符来避免空值:
1. !: 指定缺失变量的默认值;
2. ??:判断变量是否存在。
!运算符有两种用法:variable!或variable!defaultValue。第一种用法不给变量指定默认值,表明默认值是空字符串、长度为0的集合、或长度为0的Map对象。
使用!运算符指定默认值并不要求默认值的类型和变量类型相同。
测试空值处理: <#-- ${sss} 没有定义这个变量,会报异常! --> ${sss!} <#--没有定义这个变量,默认值是空字符串! --> ${sss!"abc"} <#--没有定义这个变量,默认值是字符串abc! --> |
??运算符返回布尔值,如:variable??,如果变量存在,返回true,否则返回false。
Freemaker的了解的更多相关文章
- freemaker时间格式转换,精确到毫秒
在开发中,需要将时间以 2016-09-20 12:00:01:723 的形式里用freemaker展示在页面上,找了好久,终于找到了答案. "createTime":" ...
- FreeMaker实现变量求和
今天在项目上遇到统计分页页面的某个字段的总和,前台页面是使用FreeMaker实现的,记录一下: <#assign tprice = 0 > <#list orderlist ...
- 【FreeMaker】FreeMaker学习-基础
转载请标明出处:http://www.cnblogs.com/ssslinppp 阅读目录 -04-08 08:08:08 Pacific Daylight Time Tue, Apr 8, '03 ...
- 【freemaker】之FreeMakerUtil工具类
Freemaker生成文件常用工具类 public class FreemakerUtil { private static FreemakerUtil util; private static Co ...
- 【freemaker】之整合springMVC
pom.xml文件 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncod ...
- 【freemaker】之eclipse安装freemaker-IDE
eclipse安装插件一般我喜欢手动安装,有种可控的感觉! 首先需要下载freemaker-IDEhttp://freemarker-ide.sourceforge.net/ 下载之后解压得到 在ec ...
- 【freemaker】之Unknown built-in variable: now
Caused by: freemarker.core.ParseException: Unknown built-in variable: now 意思是没有内置变量,看了一下源码2.3.15版本fr ...
- freemaker分页备忘
思路:定义一个freemaker宏,接收参数.然后在freemaker页面上import这个文件,把参数传进来在server端渲染. 分页标签:pager.ftl <#-- 自定义的分页指令. ...
- freemaker的基本语法
先来解释一下freemaker的基本语法了,<# ... > 中存放所有freemaker的内容,之外的内容全部原样输出.<@ ... /> 是函数调用两个定界符内的内容中,第 ...
- 表现层技术以及Freemaker使用教程
表现出计数以及Freemaker详解 在java领域,表现层技术主要有三种:jsp.freemarker.velocity.jsp是大家最熟悉的技术优点: 1.功能强大,可以写java代码 2.支持j ...
随机推荐
- Gradle的介绍与安装
Gradle简介 Gradle是一款致力于自动化构建和对多种开发语言的支持的构建工具.如果你想在任意开发平台上构建.测试.发布和部署软件,那么Gradle提供了一个非常灵活的模型,可以支持整个开发生命 ...
- HBase——强一致性详解
Hbase是一个强一致性数据库,不是“最终一致性”数据库,官网给出的介绍: “Strongly consistent reads/writes: HBase is not an "event ...
- ActivityThread main
public static void main(String[] args) { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "Ac ...
- php 安装xdebug进行调试(phpstorm)
一.下载xdebug xdebug官网:https://xdebug.org/download.php 在选择下载哪个版本的xdebug的时候需要注意了,下面有两种方法,让你准确的下载自己环境对应的x ...
- metamascara学习导论
研究了一段时间的metamascara终于有了一点起色,因为前段时间有一个小伙伴问了我一个问题,就是能不能将metamask嵌入到自己设计的网站中,在自己要进行交易的时候也会弹出一个页面来让用户确认这 ...
- select * 和select 所有字段的区别
文章取自http://blog.csdn.net/u014305991/article/details/44964171 MySQL 5.1.37 表记录数41,547,002,即4000w行 使用远 ...
- 1896 互不侵犯 洛谷 luogu
题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. 注:数据有加强(2018/4/25) ...
- Python实现杨辉三角,超详细!
巧妙实现杨辉三角代码 def triangles(): N=[1] #初始化为[1],杨辉三角的每一行为一个list while True: yield N #yield 实现记录功能,没有下一个ne ...
- battery for stm32
右边两个1N4148的压降都是0.7V,并且3.3-0.7=2.6V & 3-0.7=2.3V 可见在电源3.3V正常供电的情况下,电池处于休息状态,这就有效避免了电池的不必要消耗:
- 开发工具|给你的项目买份保险:Python虚拟环境
读完需要 9 分钟 1. 什么是虚拟环境? 虚拟环境的意义,就如同 虚拟机 一样,它可以实现不同环境中Python依赖包相互独立,互不干扰.这在一定程度的意义上,给了我们的项目一份很有力的保障.在这里 ...