Freemarker(ftl)

Freemarker是什么

  • FreeMarker是模版引擎:是一种基于模版和要改变的数据,并用来生成(HTML页面、邮件、配置文件、源代码等)的通用工具。

用Freemarker的理由

1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。
2、宏定义比jsp tag方便
3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便
4、支持jsp标签
5、可以实现严格的mvc分离


Freemarker规则整理

FreeMarker模版文件主要有4部分组成:

  • 文本:直接输出的部分;
  • 插值:${} #{} 格式的部分,将使用数据模型中的部分替代输出;
  • FTL指令:FreeMarker指定的和HTML标记类似的标签,名字前加# 用来区分,不输出;
  • 注释:<#--此处为注释文本-->,不输出;
<html>
    <head>
        <title>welcome to FreeMarker</title>
    </head>
    <body>
        <#--此处为注释-->
        <#-- 下面为插值 -->
        <h2>Welcome ${user} !</h2>
        <#-- 下面为FTL指令 -->
        <#list>
            <li>${sth.name} for ${sth.price}</li>
        </list>
    </body>
</html>

插值规则

FreeMarker的差值有两种类型:

  • 通用插值${expr}
  • 数字格式化插值 #{expr}#{expr;format}

基本输出:

  • 输出 ${user.name}
  • 空值判断
${
   user.name?if_exists}
${
   user.name?default('xxx')}
${
   user.name!"xxx"} 默认值xxx
  • 日期格式 ${user.name?string('yyyy-MM-dd')}
  • 数字格式
${age?string.number}  //20
${age?string.currency}  //$20.00
${age?string.percent}  //20%

FTL指令规则

在FreeMarker中,使用FTL标签来使用指令,FreeMarker有3种FTL标签,与HTML类似:

  • 开始标签 <#directName param>
  • 结束标签 </#directName>
  • 空标签 <#directName param />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值