<#list categories as c>
<#list c.getForums() as f>
<#if f_index == 0>
<#assign default_forum_id = "${f.id}" />
</#if>
</#list>
</#list>
<div class="forumNameTags" id="forumNameTags">
${I18n.getMessage("ForumIndex.forumNameTags")}
<#assign n = 0 />
<#list categories as category>
<#list category.getForums() as forum>
<#assign n = n+1 />
<#if n gt 5><#break></#if>//取前五条记录
<a href="${JForumContext.encodeURL("/forums/show/${forum.id}")}">${forum.name?html}</a>
</#list>
<#if n gt 5>//在五条记录后面加上一条更多的标签
<span onclick="showMoreTags('forumNameMoreTags',event,-250,135);"><a href="#this" >${I18n.getMessage("ForumIndex.forumNameTagsMore")}</a></span>
<#break>
</#if>
</#list>
</div>
<div id="forumNameMoreTags" class="popWindow" style="left:0px;top:0px;display:none;">
<div onclick="hiddenMoreTags('forumNameMoreTags')" class="popWindowTitle">x </div>
<div class="padding">
<#assign n = 0 />
<#list categories as category>
<#list category.getForums() as forum>
<#assign n = n+1 />
<a href="${JForumContext.encodeURL("/forums/show/${forum.id}")}">${forum.name?html}</a>
<#if n gt 2><br/><#assign n = 0 /></#if> //取三条记录
</#list>
</#list>
</div>
</div>
===============
生成html
===============
<div id="forumNameTags" class="forumNameTags">
热门标签:
<a href="/apollo/forums/show/1.page">股票大家谈</a>
<a href="/apollo/forums/show/2.page">行业公司研究</a>
<a href="/apollo/forums/show/3.page">投资交易策略</a>
<a href="/apollo/forums/show/4.page">创新产业研究</a>
<a href="/apollo/forums/show/5.page">社区资源下载</a>
<span onclick="showMoreTags('forumNameMoreTags',event,-250,135);"><a href="#this">更多...</a></span>
</div>
<div style="left: 0px; top: 0px; display: none;" class="popWindow" id="forumNameMoreTags">
<div class="popWindowTitle" onclick="hiddenMoreTags('forumNameMoreTags')">x </div>
<div class="padding">
<a href="/apollo/forums/show/1.page">股票大家谈</a>
<a href="/apollo/forums/show/2.page">行业公司研究</a>
<a href="/apollo/forums/show/3.page">投资交易策略</a>
<br/>
<a href="/apollo/forums/show/4.page">创新产业研究</a>
<a href="/apollo/forums/show/5.page">社区资源下载</a>
<a href="/apollo/forums/show/7.page">上海个股</a>
<br/>
<a href="/apollo/forums/show/6.page">深圳个股</a>
<a href="/apollo/forums/show/8.page">红岭公告区</a>
<a href="/apollo/forums/show/9.page">社区事务处理</a>
<br/>
<a href="/apollo/forums/show/10.page">金牌分析师</a>
</div>
</div>
相关推荐
在这个例子中,`users`是Java端传递到Freemarker模板的一个list,`user`是循环中的变量,每次迭代时代表`users`列表中的一个元素。`as`关键字用于定义迭代变量。在循环体内,我们可以通过`user`访问当前元素的属性,...
这里会遍历从第二个元素(索引1)到第四个元素(索引3,但不包括)。 ### 6. 只遍历非空元素 `list`指令的`nonempty`属性可以用来忽略空元素: ```ftl <#list items?nonempty as item> ${item} </#list> ``` ##...
这个文档将深入解析Freemarker的语法特性,包括模板注释、条件语句(如`<#if>`、`<#else>`、`<#choose>`)、循环结构(如`<#list>`)、逻辑运算符和比较运算符。同时,可能会讲解如何在模板中处理字符串、数字、日期...
返回序列(sequence)的第一个元素。例如: ```html ${sequence?first} ``` 2. **sequence?last** 返回序列的最后一个元素。 ```html ${sequence?last} ``` 3. **sequence?reverse** 反转序列的顺序。 `...
defaultValue,第一种用法不给缺失的变量指定默认值,表明默认值是空字符串,长度为0的集合,或者长度为0的Map对象. 使用!指定默认值时,并不要求默认值的类型和变量类型相同.使用??运算符非常简单,它总是返回一个布尔值...
在`freemarker 标签分页.txt`文件中,可能包含了具体的宏定义示例或使用方法,你可以参考其中的内容进行实践。记住,学习和理解FreeMarker的宏机制是关键,这有助于你在实际项目中灵活应用和扩展分页功能。通过这种...
first**: 返回序列的第一个元素。 - **sequence?last**: 返回序列的最后一个元素。 - **sequence?reverse**: 反转序列。 - **sequence?size**: 获取序列长度。 - **sequence?sort**: 对序列排序。 - **sequence?sort...
`Freemarker2.3.19.jar`是Freemarker库的一个版本,包含了所有你需要运行和操作Freemarker模板的类和方法。这个JAR文件可以添加到Java项目中,以便在代码中使用Freemarker的功能。 首先,我们来了解一下Freemarker...
- 压缩包中的`freemarkerTest`可能是一个示例工程或者测试类,它包含了Freemarker的使用代码。 - 这个例子可能会创建一个简单的模板文件,如`hello.ftl`,并提供一个数据模型,比如包含用户信息的对象。 - 测试...
first`:返回序列的第一个元素。 - `sequence?last`:返回序列的最后一个元素。 - `sequence?reverse`:反转序列。 - `sequence?size`:返回序列的长度。 - `sequence?sort`:按照元素的`toString()`排序序列。 ...
- 序列操作:序列可以通过索引和切片进行访问和修改,如`seq[1..2]`表示访问序列`seq`的第二和第三个元素。 - Hashes操作:通过键值对形式存储数据,如`{"name":"greenmouse", "price":150}`,支持键的查找和更新。 ...
- `item_has_next`表示当前元素是否是列表中的最后一个元素。 示例代码: ```ftl <#list userList as user> 第${user_index + 1}个用户 用户名:${user.userName} 密码:${user.userPassword} 年龄:${user....
可以通过索引来切片列表,例如 `${list[1..3]}`将输出列表的第二、第三和第四项。 6. **日期和时间格式化** (`<#date>` 和 `<#time>`): FreeMarker提供了内置的日期和时间处理,可以将日期对象转换成各种格式。...
- **2.2 switch,case,default,break指令**:介绍了选择结构指令的使用方法。 - **2.3 list,break**:说明了循环结构指令的使用方式。 - **2.4 include指令**:介绍了如何在模板中包含其他模板。 - **2.5 import...
first`(获取第一个元素),`?last`(获取最后一个元素),`?reverse`(反转),`?size`(获取长度),`?sort`和`?sort_by`(排序)等方法。 - 对于哈希,有`?keys`(获取所有键),`?values`(获取所有值)等方法。...
在压缩包"freemarker成功Demo.rar"中,你应该能找到一个示例模板文件(如`template.ftl`)和对应的Java代码,演示了如何使用Freemarker生成包含上述元素的Word文档。通过分析这些文件,你可以更好地理解和应用上述...
模板是FreeMarker中用来定义输出格式的部分,它使用了一套独特的语法,如`<#if>`、`<#list>`等,来控制输出的条件和循环。此外,模板还可以包含自定义的指令和宏,以便更灵活地处理数据。 ### 数值和类型 #### 2.1...
- **2.1 基本内容:**涵盖了FreeMarker中的基本数据类型及其使用方法。 - **2.2 类型:**深入探讨了FreeMarker支持的不同数据类型,如字符串、数字、日期等,并讨论了它们之间的转换规则。 **第三章 模板** - **3.1...
first`:返回序列的第一个元素。 - `sequence?last`:返回序列的最后一个元素。 - `sequence?reverse`:反转序列的元素顺序。 - `sequence?size`:返回序列的长度。 - `sequence?sort`:按元素的`toString()`...
创建 FreeMarker 配置实例是使用 FreeMarker 的第一步。这通常涉及指定模板文件的加载路径: ```java Configuration cfg = new Configuration(Configuration.VERSION_2_3_28); cfg.setDirectoryForTemplateLoading...