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>

 
 

FreeMarker 教程整理的更多相关文章

  1. w3school教程整理

    原文链接:http://www.flygon.net/w3school 原文链接:https://github.com/wizardforcel/w3school w3school教程整理 离线版大部 ...

  2. W3School 教程整理

    离线版大部分整理自 w3cschool ,少部分整理自 w3school ,由本人整理. 感谢 w3cschool 站长的无私奉献. 由于本人精力有限,此处的列表不一定能够及时更新,最新版本请到本人博 ...

  3. SQL 基础语法笔记教程整理

    最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...

  4. 转:一篇很全面的freemarker教程

    最近在使用freemarker,于是在网上找了一些教程学习,如下: 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组 ...

  5. Java 教程整理:基础、项目全都有

    Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 网上有很多 Java 教程,无论是基础入门还是开发小项目的教程都比比皆是,可是系统的很少,对于Java 学习者来说找到系 ...

  6. [转]一篇很全面的freemarker教程

    copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...

  7. 一篇很全面的freemarker教程

    以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1,文本:直接输出的部分2,注释:<#-- ... --& ...

  8. FreeMarker教程

    一.什么是模板引擎,为什么要用模板引擎 在B/S程式设计中,常常有美工和程序员二个角色,他们具有不同专业技能:美工专注于表现——创建页面.风格.布局.效果等等可视元素:而程序员则忙于创建程式的商业流程 ...

  9. 【转】一篇很全面的freemarker教程---有空慢慢实践

    FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... -->格式部分,不会输 ...

随机推荐

  1. Ajax 的一些概念 解析

    什么是Ajax Ajax基本概念 Ajax(Asynchronous JavaScript and XML):翻译成中文就是异步的JavaScript和XML. 从功能上来看是一种在无需重新加载整个网 ...

  2. mysql 字符类以及重复元字符

    字符类 [:alnum:]=[a-zA-Z0-] [:alpha:]=[a-zA-Z] [:digit:]=[-] [:lower:]=[a-z] [:upper:]=[A-Z] [:xdigit:] ...

  3. dedecms 织梦二级菜单的调用

    <ul class="nav navbar-nav navlist"> <li class='nav-item'> <a href="htt ...

  4. dedecms 模板文件不存在,无法解析文档的终极各种解决办法

    dedecms 模板文件不存在,无法解析文档"的终极各种解决办法 方法一:[此对应喜欢把模板文件使用".html"的格式,] /include/arc.archives. ...

  5. 帝国CMS 7.5编辑器从WORD中粘贴过来无法保留格式和图片的解决办法

      配置过滤js文件 首先打开  \editor\plugins\pastefromword\filter\default.js  在文件的最后部分又如下代码(修改前的代码),也可以搜索CKEDITO ...

  6. 20189220 余超《Linux内核原理与分析》第二周作业

    计算机如何工作的 一.存储程序计算机工作模型 冯诺依曼体系结构:核心思想为存储程序计算机.两个层面: (1)硬件的角度(计算机主板):一个CPU,一块内存,之间有总线连接.CPU内部有一个IP计算器, ...

  7. SQLServer ROW_NUMBER()函数使用方法 分区排序

    #ROW_NUMBER() over()能干什么? 既可满足分区的需求,也可以根据一定的顺序来排序. #细细说 select ROW_NUMBER() over(partition by xm Ord ...

  8. LODOP打印项水平居中

    LODOP控制打印项水平居中,可以用如下语句,该语句控制的是打印项本身在纸张中水平居中.LODOP.SET_PRINT_STYLEA(0,"Horient",2);这个根据大的打印 ...

  9. FormsAuthentication使用指南,实现登录

    一般情况下,在我们做访问权限管理的时候,会把用户的正确登录后的基本信息保存在Session中,以后用户每次请求页面或接口数据的时候,拿到Session中存储的用户基本信息,查看比较他有没有登录和能否访 ...

  10. 手机端rem无限适配

    参考文档: http://blog.csdn.net/xwqqq/article/details/54862279 https://github.com/amfe/lib-flexible/tree/ ...