freemarker语法

freemarker语法

  • 打印基本类型的object
${object}

如果为null或不存在则不打印

${object!}

也可以给不存在的值一个默认值

${object!"我是默认值"}

可以给括号里的值进行运算

${object+1}
  • 打印对象中的值
${User.name}

如果name不存在则这样写

${User.name!}

如果User也可能不存在则这样写,它会先判断User是否存在,再判断name是否存在

${(User.name)!}
  • 打印格式化日期
${birthday?string('yyyy-MM-dd')}
  • 定义一个变量,并为之赋值
<#assign var="hello" />
<#assign var=[1,2,3,4,5,6] />
  • 转译HTML内容
    比如在Controller中var是这样写的
mv.addObject("<font color='red'>Hello</font>");

如果我们想输出Hello,而不是标红的Hello,我们应该这样写

${var?html}
  • if表达式
<#assign var = 99/>
<#if var == 99>
    ...
<#elseif var == 88>
    ...
<#else>
    ...
</#if>

如果判断的条件可能不存在应该这样写,??表示如果var不存在,…的内容就不会执行

<#if var??>
    ...
</#if>

<#if var?exists>
    ...
</#if>

还可以进行多条件判断

<#if !((var==99 && var==88) || (var==77)) >
    ...
</#if>
  • switch表达式
<#switch var >
    <#case 10>
        ...
        <#break>
    <#case 100>
        ...
        <#break>
    <default>
        ...
</#switch>

macro语法(宏指令)

  • 定义
<#macro macro_name param1 param2 param3 paramN>
    template_code ${param1}
    ...
    <#nested/>
</#macro>

无参

<#macro test>
    <font color="red">我是无参数的macro</font>
</#macro>

有参

<#macro test param1 param2>
    <font color="red">我是有参数的macro</font>
</#macro>

有默认参

<#macro test param1 param2="java">
    <font color="red">我是有参数的macro</font>
</#macro>

有多个参(paramExt是随便写的,你写成aaa都行)

<#macro test param1 param2="java" paramExt...>
    <font color="red">我是有多个参数的macro</font>
    <font color="red">${paramExt['param3']}</font>
</#macro>

带嵌套的(nested)

<#macro test param1>
    <nested param1, "我的nested参数">
</#macro>
  • 调用
<@macro_name param1="value1" param2="value2"/>

<@macro_name param1="value1" param2="value2">
    nested_template
</@macro_name>

无参

<@test/>

有参

<@test param1="java" param2="c++"/>

有多个参(paramExt是随便写的,你写成aaa都行)

<@test param1='java' param2='hello python' param3='js' param4='nodejs'/>

带嵌套的(nested)(返回的值的个数是可以选择的)(nested 的返回值用,分开)(param1 -> loopVar1, “我的nested参数” -> loopVar2)

输出的是hello java, 我的nested参数
<@test param1="java";loopVar1, loopVar2>
    hello ${loopVar1}, ${loopVar2}
</@test>
输出的是hello java
<@test param1="java";loopVar1>
    hello ${loopVar1}
</@test>

function语法

  • 定义
<#function function_name param1 param2>
    <#return param1 + param2>
</#function>
  • 调用


${function_name(100,100)}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值