zoukankan      html  css  js  c++  java
  • FreeMarker 教程整理

    Freemarker新手教程
    http://blog.csdn.net/qq_23994787/article/details/77506980
     
    FreeMarker教程整理
    http://blog.csdn.net/freewindgo/article/details/52297936
     
    史上最详细freemarker语法介绍及其入门教程实例
    http://blog.csdn.net/u011118289/article/details/43306015
     
    JAVA中使用freemark生成自定义文(json、excel、yaml、txt)
    http://blog.csdn.net/jinzhencs/article/details/51461776

    ___________________________________________________________

    freemarker list (长度,遍历,下标,嵌套,排序)

    freemarker取list的第一个元素 循环用法 

    freemarker遍历list处理第一个、最后一个元素

     

    ___________________________________________________________

    freemarker中显示某对象使用${name}.

    但如果name为null,freemarker就会报错。如果需要判断对象是否为空:

    <#if name??>

    ……

    </#if>

    当然也可以通过设置默认值${name!''}来避免对象为空的错误。如果name为空,就以默认值(“!”后的字符)显示。

    对象user,name为user的属性的情况,user,name都有可能为空,那么可以写成${(user.name)!''},表示user或者name为null,都显示为空。判断为空

    <#if (user.name)??>

    ……

    </#if>

    __________________________________________________________

    项目中用freemarker 做显示层,可能会遇到取出数据前几条,通过用freemarker 取数据用<#list root.list as row> ${row.title} <#/list> ,但是这种取法是取出所有的数据.

    如果我想去第一条数据:

    <#list arrayList as c>

        <#if c_index == 0>
          第一项的值
        </#if>

    </#list>

    现在只想取前5条,该怎么做?代码如下:

    <#assign n = list5?size /> //定义n的值为list5的大小
    <#if n gt 6> //如果n大于6,页面中可能要求只显示6条           (注:gt,gte,lt,lte)
    <#assign n = 6 /> //把n重定义为6
    < /#if>


    < #if n!=0> //防止n的值为0,也可以写成<#if n gt 0 >
    < #list 0..(n-1) as i> //把前 n 条 记录赋值给 i,如果i=3,则[0,1,2]
    < #assign ls5 = list5[i] /> //把list5的第i个元素赋值给ls5
    < #assign isNew = list5Istrue[i] />
    < tr>
    < td height='25' class='z3'>.<a href='#' onclick="zw('${ls5.CIid}','905','活动展示','');">
    < #if ls5.CTitle?length lt 15> //如果Ctitle的长度小于15,就
    ${ls5.CTitle} //就正常显示该标题
    <#else> //如果大于15
    ${ls5.CTitle[0..15]}... //就截取前15个,并加上…
    </#if>
    < #if isNew="true">
    < img src='/model/img/new-111.gif' width='27' height='11' border='0' />
    < /#if>
    < /a></td>
    < /tr>
    < /#list>
    < /#if>

    项目中应用:

    [#assign n = 0] 
    [#list cocoPersonInfo.cocoPersonResues as v] 
    [#assign n = n + 1] 
        <tr >
          <td width="66" colspan="2" >${v.worktime_begin}</td>
          <td width="66" colspan="2" >${v.worktime_end}</td>
          <td width="300" colspan="10" >${v.workplace}</td>
          <td width="168" colspan="4" >${v.occupation}</td>
        </tr>
    [#if n > 4] 
    [#break] 
    [/#if] 
    [/#list] 
    [#if n < 5] 
    [#list n..4 as i]
        <tr >
          <td width="66" colspan="2" ></td>
          <td width="66" colspan="2" ></td>
          <td width="300" colspan="10" ></td>
          <td width="168" colspan="4" ></td>
        </tr>
    [/#list] 
    [/#if]

    效果:

    _______________________________________________________________

    FreeMarker两种注释

    叹号 <!-- 注释 -->

    发布之后,客户端可以看到注释内容

    效果图

    井号 <#-- 注释 -->

    发布之后,客户端看不到注释内容
    服务端
    客户端
    可以看到,客户端的网页中,并没有注释内容,只有在服务器端可以看到。
     
     
    ______________________________________________________________________________

     

     <!-- A -->

    <!-- wind123 CommentModelList -->
    <#if staticThreadDetailDo.commentModelList??>
    <#assign lastCommentIdx=staticThreadDetailDo.commentModelList?size-1 />
    ${staticThreadDetailDo.commentModelList[lastCommentIdx].body)}
    </#if>
     

     <!-- B -->

     <#if staticThreadDetailDo.commentModelList??>

    <#assign lastCommentIdx=staticThreadDetailDo.commentModelList?size-1 /> 

     <#list staticThreadDetailDo.commentModelList as item>

    <#if item_index=lastCommentIdx>
    ${(item.body)}
    </#if>
    </#list>

    </#if>
     

     
     
  • 相关阅读:
    jsp tag
    加密算法
    webpack4.x 使用
    vue部分知识点
    数据赋值处理
    Promise markdown版
    Promise-github版
    vuex简单介绍-官网
    vue-router-官网
    vue官方实例-分例-14-19
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/10833871.html
Copyright © 2011-2022 走看看