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



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


     
  • 相关阅读:
    修改项目名称
    Servlet中request、response、ServletContext 及其常用方法
    Servlet生命周期、常用提交方式、中文乱码问题、重定向和请求转发
    JavaScript基础(三) 事件
    JavaScript基础(二) DOM
    JavaScript基础(一)
    css基础:样式之定位、样式之隐藏、二级菜单、多个列表转表格、图片精灵技术
    css基础:表格样式、一级菜单、BFC浮动影响
    css基础及其实例:常用选择器、颜色五中写法、字体样式、自定义字体、盒模型及其样式设置
    HTML元素标签及表单元素详解
  • 原文地址:https://www.cnblogs.com/xxt19970908/p/5594146.html
Copyright © 2011-2022 走看看