四、模版指令操作

一、  复杂模版中指令混合使用

1、时间转换:yyyy-MM-dd HH:mm: ss(datetime)
            yyyy-MM-dd(date)
            HH:mm: ss(time)
例:${list. createDate? Time}
2、集合操作:循环迭代
<#list list.info as user>
  <#user.name>
  <#if user? has_next>, </#if>
</#list>

<#list list.info as user>
  <#user.name>
  <#seq>;
</#list>
3、集合操作:判断是否存在、内容大小
<#if list??>
//判断list是否存在?
</#if >

<#if list??&&0 lt list? size>
//判断是否存在?0小于集合
</#if >

<#if list? has_content>
//判断是否存在,list内容是否为空
</#if >
4、数据展示操作:判断数据内容进行格式化输出
${list. master? strng(‘管理员’,’访客’)} truefalse
${list. createDate? string(yyyy-MM-dd)}

二、  宏定义编写

1、处理很长的字符串,省略后部分!描述太长了,html展示不好看

解决方法:1、编写宏:数据text、长度length …后面参数可多个!2、调用宏:<@cut text=list. note length=20>

<#macro cut text length append='...'>

<#if text? length gt length>

    ${text? substring (0, length)} ${append!}

<#else>

    ${text!}

</#if>

</#macro>

处理后:

代码:嵌入在同一个ftl页面模版中,代码太多!怎么办??????????

解决:在通过定义外部的tools.ftl直接引入进来

 

 

 

 

1、命令空间、定义变量

自动引入外部的ftl<prop key="auto_include">tools.ftl</prop>

缺点:如果有多个ftl自动引入,多个ftl中的宏定义方法名一模一样引起冲突!

解决使用:<prop key="auto_import">tools.ftl as t</prop>

使用宏:<@t.cut text=test. note length=20/>

常量定义:<#assign ***="">

    <#assign http1="http://www.baidu.com"/>

    <#assign http2="http://www.baidu.com"/>

    <#assign http3="http://www.baidu.com"/>

    <#assign http4="http://www.baidu.com"/>

常量使用:

    ${t.http1}<a href="${t.http1}">到百度去</a>

 

三、  Java扩展指令编写、配置使用

1、编写自定义指令:implements TemplateDirectiveModel


2、在springMVC.xml文件freemarkerVariables中配置该指令

<bean id="MyDirective1" class="com.freemarker.Controller.MyDirective1"/>

<entry key="MyDirective1" value-ref="MyDirective1" />

3、 调用指令,在ftl模版是使用

<@MyDirective1>${info}</@MyDirective1>

 

四、  Java扩展方法编写、配置使用

1、 编写指令方法:implements TemplateMethodModelEx

  2、 在springMVC.xml文件freemarkerVariables中配置该指方法

<bean id="MyMethod1" class="com.freemarker.Controller.MyMethod1"></bean>

<entry key="MyMethod1" value-ref="MyMethod1" />

  3、调用指令方法,在ftl模版是使用

    ${MyMethod1()}

  4、带参数的自定义方法


  5、  调用

  ${MyMethod1("测试")}



=========> 支持的数据类型


 

 

转载于:https://www.cnblogs.com/xxt19970908/p/5594146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值