zoukankan      html  css  js  c++  java
  • 四、模版指令操作

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

    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("测试")}



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


     
  • 相关阅读:
    POJ 3026
    POJ 1258
    POJ 1751
    一种用于三维物体建模的精确、鲁棒的距离图像配准算法
    人脸识别技术介绍和表情识别最新研究
    汇总|实时性语义分割算法(共24篇)
    ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型
    三维重建的定位定姿算法
    多视图几何三维重建实战系列- Cascade-MVSNet
    HybridPose:混合表示下的6D对象姿态估计
  • 原文地址:https://www.cnblogs.com/xxt19970908/p/5594146.html
Copyright © 2011-2022 走看看