`
hb_keepmoving
  • 浏览: 230549 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

freemarker 笔记

阅读更多

1、<#assign mouse = "Jerry">  // 声明变量  mouse ="Jerry"

 

2、<#if mouse??>    // 判断mouse 是否存在
          Mouse found
     <#else>
          No mouse found
     </#if>

 

3、${"green " + "mouse"?upper_case}   --->    <#-- green MOUSE -->
     ${("green " + "mouse")?upper_case}   --->  <#-- GREEN MOUSE -->

 

4、创建一个宏变量 来打印大号的”Hello Joe!”

     <#macro greet>
            <font size="+2">Hello Joe!</font>
     </#macro>

     macro指令自身不打印任何内容,它只是用来创建宏变量,所以就会有一个名为greet的变量。在<#macro greet>和</#macro>之间的内容(称为宏定义体)当使用它作为指令时将会被执行。你可以在FTL标记中通过@代替#来使用自定义指令。使用变量名作为指令名。而且,自定义指令的结束标记也是需要的。那么,就可以这样来使用greet了:

 

 无参数:<@greet></@greet> ----->打印 <font size="+2">Hello Joe!</font>;

 

   

 有参数:<#macro greet person>
                  <font size="+2">Hello ${person}!</font>
             </#macro>
 打印:<@greet person="Fred"/> and <@greet person="Batman"/>

 结果:<font size="+2">Hello Fred!</font> and <font size="+2">Hello Batman!</font>

 

自定义指令可以有多个参数。

        <#macro greet person color>
                  <font size="+2" color="${color}">Hello ${person}!</font>

        </#macro>

那么就这样来使用:<@greet person="Fred" color="black"/> 或者<@greet color="black" person="Fred"/>

参数的顺序不重要 。 宏参数的另外一个重要的方面是它们是 局部变量

 

5、很多情况下需要给一个参数指定一个相同的值,所以我们仅仅想在这个值发生变化后重新赋给变量。那么要达到这个目的,在macro指令中必须这么来指定变量:param_name=usual_value。例如,当没有特定值的时候,我们想要给color赋值为"black",那么greet指令就要这么来写:

   <#macro greet person color="black">
        <font size="+2" color="${color}">Hello ${person}!</font>
   </#macro>

 现在,我们这么使用宏就可以了:<@greet person="Fred"/>,因为它和<@greet person="Fred" color="black"/>是相同的,这样参数color的值就是已知的了。如果想给color设置为”red”,那么就写成:

<@greet person="Fred" color="red"/>,这时macro指令就会使用这个值来覆盖之前设置的通用值,参数color的值就会是”red”了。

6、 根据FTL表达式规则,明白这一点是至关重要的,someParam=foo和someParam="${foo}"是不同的。第一种情况,是把变量foo的值作为参数的值来使用。第二种情况则是使用插值形式的字符串,那么参数值就是字符串了,这个时候,foo的值呈现为文本,而不管foo是什么类型(数字,日期等)的。看这个例子:someParam=3/4和someParam="${3/4}"是不同的,如果指令需要someParam是一个数字值,那么就不要用第二种方式。切记不要改变这些。

 

 

7、嵌套内容

   <#macro do_thrice>
            <#nested>
            <#nested>
            <#nested>

  </#macro>
  <@do_thrice>
            Anything.
  </@do_thrice>

 

  打印结果:

             Anything.
             Anything.
             Anything.

 

在嵌套内容中,宏的局部变量是不可见的

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    freemarker笔记

    这个“freemarker笔记”很可能是一个关于理解和使用FreeMarker模板语言的学习资料,其中可能涵盖了FreeMarker的基本概念、语法、以及在实际开发中的应用。 FreeMarker的核心概念是模板和数据模型。模板是HTML或者...

    FreeMarker笔记1

    下面将详细解释FreeMarker的一些关键语法和特性,以及在实际应用中的使用。 ### 1. 对象输出 在FreeMarker中,可以直接输出对象的值。例如,如果在数据模型中有一个名为`name`的对象,可以使用`${name}`将其值插入...

    freemarker

    freemarker笔记

    Freemarker学习笔记

    Freemarker学习笔记可以帮助初学者了解,快速掌握Freemarker

    Freemarker 语法规则

    通过阅读`freemarker语法.docx`和`freemarker笔记1.txt`,你可以更深入地了解这些规则,并结合实际项目进一步掌握Freemarker的使用。同时,参考提供的博客链接(https://kingpingping.iteye.com/blog/1144477),...

    freemarker资料汇总

    再来看《Freemarker使用总结》和《freemarker笔记》。这些文档通常是个人或团队在实践中积累的经验总结,它们可能包含了一些最佳实践、技巧或者常见问题的解决方案。通过阅读这些笔记,你可以快速掌握Freemarker在...

    Freemarker 学习笔记一 【乱码解决】

    在使用Freemarker的过程中,遇到乱码问题是一个常见的挑战,特别是当处理不同编码格式的数据时。本篇文章将探讨如何解决Freemarker中的乱码问题,并提供相关源码和工具的使用技巧。 首先,乱码通常源于字符编码不...

    freemark笔记、语法、讲解大全

    ### FreeMarker 笔记、语法、讲解大全 #### 一、FreeMarker 概述与基本概念 FreeMarker 是一个用 Java 编写的模板引擎,它基于模板来生成文本输出。这些模板可以用来生成任何格式的文件,如 HTML 页面、XML 文档、...

    freemark笔记

    ### Freemarker 笔记知识点详解 #### 一、Freemarker 概述 Freemarker 是一款用 Java 编写的模板引擎,它基于模板来生成文本输出。模板中可以包含静态数据、简单表达式、控制结构(循环/条件语句)、宏等。它常...

    FreeMarker.pdf

    它将视图逻辑从业务逻辑中分离,使得程序员专注于数据处理,而由FreeMarker负责生成和展示视图。FreeMarker不依赖于特定的Web容器,它可以独立于HTTP或Servlet工作,这也意味着它同样适用于非Web环境。 FreeMarker...

Global site tag (gtag.js) - Google Analytics