您现在的位置:首页 >> 前端 >> 内容

初识FreeMarker

时间:2017/8/28 9:21:00 点击:

  核心提示:初识FreeMarkerFreemarker不算Web框架,是基于Java编写的模板引擎,是视图的一个组件,便于编程人员更好的在View层(MVC模型)显示后端数据。.flt(Freemarker T...

初识FreeMarker

Freemarker不算Web框架,是基于Java编写的模板引擎,是视图的一个组件,便于编程人员更好的在View层(MVC模型)显示后端数据。

初识FreeMarker

.flt(Freemarker Template Language)是Freemarker模板的文件后缀名

Freemarker官网:https://freemarker.org

简单语法

${varName} 取值插入
${name} 取变量name的值插入该位置(通过ModelAndView传值) ! 取空值或变量不存在问题
${varName!}变量为空不存在不输出任何东西
${varName!'我是默认值'} 空或不存在输出 我是默认值 ? 后接函数等操作
${date?string("yyyy-MM-dd")}对date变量转换格式后输出 <#assign a=100 /> 定义变量 <@... > @表示自定义指令 <#-- --> 注释 文本 直接输出

具体用法

取值

逻辑变量
${booleanVar}直接输出页面报错
初识FreeMarker
原因:页面中不能输出逻辑变量值true,false
解决方案:
1) freemarker配置文件中设置格式化标签

yes,no

2) 使用时转格式

    ${booleanVar?string('yes','no')}

取日期
Freemarker中只与Java.sql.Date类型的日期做映射,无法输出Java.util.Date类型的日期

<#-- Java.util.Date类型需转义 -->
${dateVar?string('yyyy-MM-dd HH:mm:ss')}
<#-- Java.sql.Date类型直接用 -->
${dateVar}

取到空值 或 变量不存在
${nullVar} 取到空值页面报错
${missing} missing没有定义(不存在)

${var!} <#-- null或mssing则不输出任何东西 -->
${var!'默认值'} <#-- null或mssing输出 默认值-->

输出HTML代码${var?html}

${"我是html代码"?html}

页面显示为:我是html代码

遍历List
userList为通过ModelAndView传过来的java对象 List userList


  • <#list userList as item>
  • ${item.name},的年龄是:${item.age}

异常处理:

${ userObj.name !} <#-- 只能判断name是否异常 -->
${ (userObj.name)! } <#-- 判断userObj是否异常-->

遍历Map

    
  • 集合Map
  • <#list map?key as key> ${key}:${map[key]}

逻辑语句

If语句

    <#if var >99>
        var 大于 00
    <#elseif var==99>
        var 等于 00
    <#else>
        var 小于 00
    
    <#-- 其他判断形式 -->
    <#if myList??> ?是否存在或为空值
    <#if myList?exists> 是否存在

Switch语句

<#switch var>
    <#case 10>
        10

    <#break>
    <#case 100>
        100

    <#default>
        other

对字符串操作

    连接   ${a+b}
    截取   ${ (a+b)?substring(5,8) } 只取头,不取尾
    长度   ${ (a+b)?length }
    大写   ${ (a+b)?upper_case }
    小写   ${ (a+b)?lower_case }
    首次出现位置   ${ (a+b)?index_of(‘w’) }
    替换   ${ (a+b)?replace(‘w’,’s’) }
    最后一次出现的位置  ${ (a+b)?last_index_of(‘o’) }

Tags:初识 识F FR RE 
作者:网络 来源:PasserQi