一、freemarker中list循环使用非常频繁,下面介绍lfreemarker中list简单的用法

  1、在freemarker中遍历list数组使用list指令:<#list sequence as item>...</#list>;

  其中sequence为集合(controller)的表达式,item是循环变量名(别名),不可是表达式;

  在遍历sequence的时候会将sequence中的变量或者对象放到item中,后面使用时只需用item即可;

  例如:<#list libraryVOs as libraryVO>

  注: libraryVOs集合为标签集合,GroupDTO为标签组

  libraryVOs为sequence表达式,libraryVO为item变量;libraryVOS中有多个GroupDTO对象,在遍历时会将GroupDTO存放到libraryVO中。如果取GroupDTO中的名称

  使用${libraryVO.applyName};

  2、item_index:当前迭代项在所有迭代项中的位置,是数字值。

  3、freemarker判断<#if (x>y)></#if> 注:要使用括号括起来

  

<ul>
<#list libraryVOs as libraryVO>
<li>
<span class="content-l-title">${libraryVO.groupDto.applyName}(${libraryVO.count}):</span>
<ul class="content-l-content">
<#list libraryVO.labelDto as labelLibrary>
<#if (labelLibrary_index <= 3)>
<li>
<span class="second-title">${labelLibrary.applyName}:</span>
<span class='second-title hide' id='labelId${labelLibrary.autoId}'>${labelLibrary.applyName}</span>
<label for="checkbox10" class="checkbox${labelLibrary.autoId}0" onclick="getLabelCustom(${labelLibrary.autoId})">
<input type="radio" id="checkbox0${labelLibrary.autoId}" value="1" name="tag1">
<b><img src="${resRoot}/css/images/xianze.png" alt=""></b>
自定义
</label>
<label for="checkbox11" class="checkbox${labelLibrary.autoId}1" onclick="getLabelAll(${labelLibrary.autoId})">
<input type="radio" id="checkbox1${labelLibrary.autoId}" value="0" name="tag1">
<b><img src="${resRoot}/css/images/xianze.png" alt=""></b>
不限
</label>
<input id="tagSel${labelLibrary.autoId}" name="tagSel${labelLibrary.autoId}" onclick="showTag(${labelLibrary.autoId}); return false;" class="tag-item ${labelLibrary.autoId} hide" type="text" readonly value="">
<input id="tagSelId${labelLibrary.autoId}" name="tagSelId${labelLibrary.autoId}" type="hidden" value="" style="width:120px;">
<div id="tagContent${labelLibrary.autoId}" class="tagContent${labelLibrary.autoId}" style="position: absolute; left: 64px; display:none;width:160px;height:200px;overflow-y:scroll;overflow-x:auto;z-index:5555;background: #fff;">
<ul id="tagDemo${labelLibrary.autoId}" class="ztree"></ul>
</div>
</li>
</#if> <#if (labelLibrary_index > 3)>
<li class="list hide">
<span class="second-title">${labelLibrary.applyName}:</span>
<span class='second-title hide' id='labelId${labelLibrary.autoId}'>${labelLibrary.applyName}</span>
<label for="checkbox10" class="checkbox${labelLibrary.autoId}0" onclick="getLabelCustom(${labelLibrary.autoId})">
<input type="radio" id="checkbox0${labelLibrary.autoId}" value="1" name="tag1">
<b><img src="${resRoot}/css/images/xianze.png" alt=""></b>
自定义
</label>
<label for="checkbox11" class="checkbox${labelLibrary.autoId}1" onclick="getLabelAll(${labelLibrary.autoId})">
<input type="radio" id="checkbox1${labelLibrary.autoId}" value="0" name="tag1">
<b><img src="${resRoot}/css/images/xianze.png" alt=""></b>
不限
</label>
<input id="tagSel${labelLibrary.autoId}" name="tagSel${labelLibrary.autoId}" onclick="showTag(${labelLibrary.autoId}); return false;" class="tag-item ${labelLibrary.autoId} hide" type="text" readonly value="">
<input id="tagSelId${labelLibrary.autoId}" name="tagSelId" type="hidden" value="" style="width:120px;">
<div id="tagContent${labelLibrary.autoId}" class="tagContent${labelLibrary.autoId}" style="position: absolute; left: 64px; display:none;width:160px;height:200px;overflow-y:scroll;overflow-x:auto;z-index:5555;background: #fff;">
<ul id="tagDemo${labelLibrary.autoId}" class="ztree"></ul>
</div>
</li>
</#if>
</#list>
<#if (libraryVO.labelDto?size > 3)>
<li>
<span class="l-more">更多<i class="more-icon"></i></span>
<span class="l-close hide">收起<i class="close-icon"></i></span>
</li>
</#if>
</ul>
</li>
</#list>
</ul>

  

  

  

 

freemarker循环、下标及判断的更多相关文章

  1. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

    C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...

  2. python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器

    python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 1. 创建一个 zqxt_tm ...

  3. Java 控制语句:循环、条件判断

    基础很重要,基础很重要,基础很重要.重要的事情说三遍,. 程序设计中的控制语句主要有三种:顺序.分支和循环.我们每天写的代码,除了业务相关,里面会包含大量的控制语句.但是控制语句的基本使用,是否有些坑 ...

  4. 脚本开头,python预编译,控制台输入输出,for,while循环,分支判断,break,continue

    3. name = input("name:")与2.x中raw_input一回事, 注意接收的变量全部默认为字符串类型. 从控制台接收用户输入,而密文输入import getpa ...

  5. for循环里面的判断条件

    先看下面这段代码,你很容易猜到结果 for(i=0;i<10;i++){ console.log(i); // 结果是打印出 1,2,3,4,5,6,7,8,9 } 再看一下这款代码,也许很容易 ...

  6. Swift流程控制之循环语句和判断语句详解

    Swift提供了所有c类语言的控制流结构.包括for和while循环来执行一个任务多次:if和switch语句来执行确定的条件下不同的分支的代码:break和continue关键字能将运行流程转到你代 ...

  7. Ansible系列(六):循环和条件判断

    本文目录:1. 循环 1.1 with_items迭代列表 1.2 with_dict迭代字典项 1.3 with_fileglob迭代文件 1.4 with_lines迭代行 1.5 with_ne ...

  8. PHP和JS在循环、条件判断中的不同之处

    一.条件判断: php中算  false 的情况 1. boolean:false 2. 整形:0 3.浮点型:0 4.字符串:"" "0"(其他都对) 5.空 ...

  9. 不使用循环或递归判断一个数是否为3的幂(leetcode 326)

    326. Power of ThreeGiven an integer, write a function to determine if it is a power of three. Follow ...

随机推荐

  1. 浅谈TextView Ellipsize效果与Marquee跑马灯无效果问题

    说到TextView 效果,相信大家一定熟悉跑马灯. 先来看看 Ellipsize是什么,Ellipsize 从开发技术上翻译为省略效果.故名思议,就是当文本无法显示全部时,用什么效果来显示未显示的部 ...

  2. linux chown 命令用法

    [-cfhvR] [--help] [--version] user[:group] file  比如  chown chown root /home 把/home的属主改成root用户使用权限 : ...

  3. 总结Lock和synchronized的区别

    1. Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现,Lock是代码层面的实现. 2. Lock可以选择性的获取锁,如果一段时间获取不到, ...

  4. QML登录界面

    import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.2 import QtGraphicalEffects 1 ...

  5. Java 8 Steam 例子整理

    Java 8 Steam 例子整理 kexue 关注 2016.06.06 17:44* 字数 1860 阅读 3901评论 0喜欢 6 IBM: Java 8 中的 Streams API 详解 为 ...

  6. 123457123457#0#-----com.yimeng.wangZheChengYu01--前拼后广--成语头脑王者

    com.yimeng.wangZheChengYu01--前拼后广--成语头脑王者

  7. OAuth 2.0 授权认证详解

    一.认识 OAuth 2.0 1.1 OAuth 2.0 应用场景 OAuth 2.0 标准目前被广泛应用在第三方登录场景中,以下是虚拟出来的角色,阐述 OAuth2 能帮我们干什么,引用阮一峰这篇理 ...

  8. win7/Ubuntu双系统给Ubuntu扩大硬盘

    问题 电脑上装了windows 7和ubuntu双系统,起初分配硬盘的时候,给ubuntu划分的量较少,如今硬盘空间已不够用,另外挂载分区也不够方便.希望能在不重装系统的情况下,从win7的硬盘中分一 ...

  9. Dapper存储过程以及多次查询和批量写入操作

    一.存储过程操作 1. 准备存储过程 newsreturnvalue(该存储过程计算2个参数的和并返回) USE [ZPC.Contact] GO SET ANSI_NULLS ON GO SET Q ...

  10. jqGrid常用方法

    var jqGrid = $("#jqGrid"); // 获取选中行id[单行],test1就是最先一个行id var test1 = jqGrid.jqGrid("g ...