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 ...
随机推荐
- 在excel中将缺失数据全部用0补齐
先ctrl+H ,出现如下对话框 点击“定位”,选择“空值” 在表格中空的位置上编辑栏输入0,CTRL+ENTER,即可将缺失数据全部用0补齐.
- 17秋 软件工程 团队第五次作业 Alpha Scrum9
17秋 软件工程 团队第五次作业 Alpha Scrum9 今日完成的任务 世强:APP后端部门申请状态: 港晨:主页面代码实现: 树民:完善超级管理员web后端: 伟航:设置页面和侧边栏的原型: 陈 ...
- ScheduledThreadPoolExecutor源码解读
1. 背景 在之前的博文--ThreadPoolExecutor源码解读已经对ThreadPoolExecutor的实现原理与源码进行了分析.ScheduledExecutorService也是我们在 ...
- Django的settings配置
静态文件 STATIC_URL = '/static/' # 别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static'), os.path.join ...
- python MD5加密方法
import hashlibhash = hashlib.md5()hash.update('admin')print hash.hexdigest()
- (二 -2) 天猫精灵接入Home Assistant-自动发现Mqtt设备
参考中文教程: https://www.hachina.io/docs/7230.html 英文官网 两个温度传感器:https://www.home-assistant.io/docs/mqtt/ ...
- Linux Sysstat性能监控工具安装及常见8个命令使用例子
Sysstat,一种常用在Linux系统服务器中的软件工具包,可以用来监控服务器的性能.比如可以监控CPU.硬盘.网络等数据,我们可以用来进行分析服务器的性能和资源的使用效率.老左将在这篇文章中学习. ...
- node.js如何将远程的文件下载到本地、解压、读取
其实要解决的问题,很简单,获取远程文件,然后解压到本地读取. 在vscode中通过node.js来实现是比较方便的,相比之前的zip.js,我觉得我还是比较喜欢node.js实现方式. test.js ...
- jconsole使用
先看一张图 根据JConsole和任务管理器对比,堆内存大小在250M左右,差不多空跑一个程序用idea启动springboot就是这个大小 项目启动初始类在一万个左右,活动线程50个上下,cpu利用 ...
- EventBus使用详解
EventBus是针一款对Android的发布/订阅事件总线.它可以让我们很轻松的实现在Android各个组件之间传递消息,并且代码的可读性更好,耦合度更低.长话短说直接介绍使用. 如何使用 (以下介 ...