`

freemarker学习笔记--常用命令

阅读更多
freemarker学习笔记--常用命令
2008-10-27 18:02

freemarker学习笔记--常用命令

1.条件语句 if
<#if !readonly && !replyOnly>
your code
</#if>

注:if后面跟的是判断条件,判断条件不能用${变量名}的形式,直接用变量名就可以了

2.条件判断语句 if else
<#if (session.privateMessages > 0)>
${I18n.getMessage("ForumBase.newPm")}: (${session.privateMessages})
<#else>
${I18n.getMessage("ForumBase.privateMessages")}
</#if>

注:if else语句跟普通的不同之处是在中间可以有多句代码,而不是只执行if后面的一句代码

3.嵌套条件判断语句if if else
<#if logged>
<#if !readonly && !replyOnly>
   your code
<#/if>

other code

<#if (session.privateMessages > 0)>
   ${I18n.getMessage("ForumBase.newPm")}: (${session.privateMessages})
<#else>
   ${I18n.getMessage("ForumBase.privateMessages")}
</#if>

other code
</#if>

 

4.循环指令 list
<#list allCategories as category>
you code
</#list>

<!-- 1~3的循环 -->
<#list 1 .. 3 as page>
<@pageLink page, id/>
</#list>

4.嵌套循环指令 list
<#list allCategories as category>
your code:${category.name}

<#list category.getForums() as forum>
   inner code:${category.forum.name}
   <#list moderators as m>
    ${m_index + 1}.${m.name?html}
   </#list>
</#list>

<#if category.name = "">
<#break>
</#if>

other code
</#list>

注:as后面是别名,在循环体中可直接用(类似sql语句表的别名,以用<#break>指令提前结束list循环

。${m_index + 1}.是取list的索引,其中m_index为list的下标,从0开始。

5.导入macros指令 import
<#import "../macros/pagination.ftl" as pagination>
使用:<@pagination.doPagination action, forum.id/>
//<@pagination 为引用macros模板 pagination为对应模板文件的别名
//pagination.doPagination action 为模板文件里面的一个macro--<#macro doPagination action

id=-1>

6.定义变量指令 assign
<!-- 定义一个变量moderators 只能作用于同层或下层 -->
<#assign moderators = forumRepository.getModeratorList(forum.id)/>
<#list moderators as m>
${m.name?html}
</#list>
//其中forumRepository.getModeratorList(forum.id)为变量moderators的值

<#-- define a variable to come from pagination.ftl file name as doPagination action macro-

->
<#assign paginationData><@pagination.doPagination action, forum.id/></#assign>
${paginationData}
//其中<@pagination.doPagination action, forum.id/>为变量paginationData的值

7.改变(替换)变量指令 assign
<#assign total = forum.totalPosts/>
<!-- 定义一个变量total 值为forum.totalPosts -->
<#if (total == 0 && forum.totalTopics > 0)>
<!-- 替换原来变量的值,以后引用total变量的值为forum.totalTopics -->
<#assign total = forum.totalTopics/>
</#if>

8.switch指令
<#switch being.size>
<#case "small">
    This will be processed if it is small
    <#break>
<#case "medium">
    This will be processed if it is medium
    <#break>
<#case "large">
    This will be processed if it is large
    <#break>
<#default>
    This will be processed if it is neither
</#switch>

<#escape x as x?html>
userName: ${userName}
</#escape>
等同于
userName: ${userName?html}

注:escape指令在解析模版时起作用,而不是运行时起作用


9.设置缺省格式指令setting
<#setting number_format = "#"/>
${1.234}
输出1
<#setting number_format="0.##">
${1.234}
输出
1.23

10.包含文件指令 include
<#include "header.htm"/>


除了相关的文本外,在FreeMarker模板中可以包括下面三种特定部分:
${…}:称为插补(interpolations),FreeMarker会在输出时用实际值进行替代。
指令:也叫FreeMarker标记,与HTML标记类似,但用#开始(有些以@开始,在后面叙述)。
注释:包含在<#-- 和 -->(而不是<!--和-->)之间文本。

分享到:
评论

相关推荐

    freemarker-2.3.30-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.30.jar; 赠送原API文档:freemarker-2.3.30-javadoc.jar; 赠送源代码:freemarker-2.3.30-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.30.pom; 包含翻译后的API文档:...

    freemarker-2.3.31-API文档-中文版.zip

    赠送jar包:freemarker-2.3.31.jar; 赠送原API文档:freemarker-2.3.31-javadoc.jar; 赠送源代码:freemarker-2.3.31-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.31.pom; 包含翻译后的API文档:...

    freemarker-2.3.30-API文档-中文版.zip

    赠送jar包:freemarker-2.3.30.jar; 赠送原API文档:freemarker-2.3.30-javadoc.jar; 赠送源代码:freemarker-2.3.30-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.30.pom; 包含翻译后的API文档:...

    freemarker-ide-0.9.14

    `freemarker-ide-0.9.14` 是一个针对Freemarker模板语言的集成开发环境插件,旨在提升在MyEclipse中的开发效率和体验。 这个插件版本为0.9.14,可能包含了对Freemarker语法的高亮显示、代码自动完成、错误检查、...

    freemarker-ide-0.9.14.rar

    本压缩包"freemarker-ide-0.9.14.rar"提供的是一个针对IDE的Freemarker插件,特别适用于MyEclipse 6.5版本。 该插件名为"Hudson Freemarker IDE",版本为0.9.14,它增强了MyEclipse对Freemarker模板语言的支持。在...

    freemarker-2.3.23-API文档-中文版.zip

    赠送jar包:freemarker-2.3.23.jar; 赠送原API文档:freemarker-2.3.23-javadoc.jar; 赠送源代码:freemarker-2.3.23-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.23.pom; 包含翻译后的API文档:...

    apache-freemarker-2.3.26-incubating-bin.tar.gz

    这个"apache-freemarker-2.3.26-incubating-bin.tar.gz"文件是Apache FreeMarker的一个特定版本,即2.3.26,处于孵化器阶段(incubating)。它包含了FreeMarker库的二进制文件和相关的文档,为开发者提供了完整的...

    freemarker-2.3.20-API文档-中文版.zip

    赠送jar包:freemarker-2.3.20.jar; 赠送原API文档:freemarker-2.3.20-javadoc.jar; 赠送源代码:freemarker-2.3.20-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.20.pom; 包含翻译后的API文档:...

    freemarker-2.3.20-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.20.jar; 赠送原API文档:freemarker-2.3.20-javadoc.jar; 赠送源代码:freemarker-2.3.20-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.20.pom; 包含翻译后的API文档:...

    freemarker-2.3.23-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.23.jar; 赠送原API文档:freemarker-2.3.23-javadoc.jar; 赠送源代码:freemarker-2.3.23-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.23.pom; 包含翻译后的API文档:...

    freemarker-2.3.31-API文档-中英对照版.zip

    赠送jar包:freemarker-2.3.31.jar; 赠送原API文档:freemarker-2.3.31-javadoc.jar; 赠送源代码:freemarker-2.3.31-sources.jar; 赠送Maven依赖信息文件:freemarker-2.3.31.pom; 包含翻译后的API文档:...

    freemarker-ide-eclipse 插件0.9.14

    Eclipse是广受欢迎的Java集成开发环境,为了方便在Eclipse中编写和调试Freemarker模板,推出了`freemarker-ide-eclipse`插件。 本文将详细介绍如何在Eclipse中安装和使用`freemarker-ide-eclipse`插件0.9.14版,...

    freemarker-2.3.23-中文手册.zip

    这个“freemarker-2.3.23-中文手册.zip”包含了Freemarker 2.3.23版本的详尽中文文档,对于学习和掌握Freemarker的使用非常有帮助。 在Freemarker 2.3.23版中,我们首先会接触到它的核心概念,包括模板(Template)...

    freemarker-gae-pre2.jar包

    设计师可以改变的外观网页程序员无需更改或重新编译代码,因为应用程序逻辑( Java程序)和网页设计( FreeMarker模板)分开。 模板不会成为污染的复杂程序片段。 这一分离是有益的,在网页代码中,你甚至会觉得是...

    freemarker.jar

    camel-freemarker-1.6.4.jar, camel-freemarker-2.8.1.jar, com.springsource.freemarker-2.3.15.jar, com.springsource.freemarker-sources-2.3.15.jar, freemarker-1.4.1.jar, freemarker-2-3-18.jar, freemarker-...

    freemarker itext core-renderer

    `freemarker-2.3.20.jar`是FreeMarker的一个特定版本,提供了模板解析和数据绑定等功能。 2. **iText**: iText是一个用于生成和处理PDF文档的Java库。它可以用来创建新的PDF文档、修改已有的PDF文档,或者从其他...

    freemarker-ide-0.9.14-eclipse插件

    这款"freemarker-ide-0.9.14-eclipse插件"是为了提升在Eclipse或MyEclipse集成开发环境中使用Freemarker模板的便利性和效率。 首先,插件的核心功能在于提供对Freemarker模板文件(FTL文件)的支持。在没有该插件的...

    shiro-freemarker-springBoot- redis-mysql

    标题 "shiro-freemarker-springBoot-redis-mysql" 涉及到的是一个基于JavaWeb技术栈的应用开发项目,主要集成了Apache Shiro、FreeMarker模板引擎、Spring Boot框架以及Redis和MySQL数据库。下面将分别详细介绍这些...

    freemarker-java-8:库向FreeMarker添加了java.time支持

    FJ8(freemarker-java-8)是一个Java库,向FreeMarker添加了java.time api支持。 它很容易添加到您的代码库中,并且非常易于使用。 基本上,该库允许您格式化和打印FreeMarker模板中java.time类的值。 作为奖励,...

Global site tag (gtag.js) - Google Analytics