freemarker( 二)

作者: 搁浅的双鱼 | 来源:发表于2016-06-20 15:22 被阅读293次

    5.变量的声明

    • plain变量:可以在模板的任何地方访问,包括使用include指令插入的模板,使用assign指令创建和替换

      <#assign num=0/>
      <#assign x="Hello ${user}!"/>

    • 局部变量:在宏定义体中有效,使用local指令创建和替换

    • 循环变量:只能存在于指令的嵌套内容,由指令(如list)自动创建;宏的参数是局部变量,而不是循环变量

    6.运算符的优先级

    FreeMarker中的运算符优先级如下(由高到低排列):

    • 1,一元运算符:!
    • 2,内建函数:?
    • 3,乘除法: *, / , %
    • 4,加减法:- , +
    • 5,比较: > , < , >= , <= (lt , lte , gt , gte)
    • 6,相等: == , = , !=
    • 7,逻辑与:&&
    • 8,逻辑或: ||
    • 9,数字范围:..

    7.其他指令

    7.1 include指令

    include指令的作用类似于JSP的包含指令,用于包含指定页.include指令的语法格式如下:
    <#include filename [options]>

    在上面的语法格式中,两个参数的解释如下:
    filename:该参数指定被包含的模板文件
    options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,其中encoding指定包含页面时所用的解码集,而parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true.

    7.2 import指令

    该指令用于导入FreeMarker模板中的所有变量,并将该变量放置在指定的Map对象中,import指令的语法格式如下:

    <#import "/lib/common.ftl" as com>

    上面的代码将导入/lib/common.ftl模板文件中的所有变量,交将这些变量放置在一个名为com的Map对象中.

    7.3 setting指令

    该指令用于设置FreeMarker的运行环境,该指令的语法格式如下:<#setting name=value>,在这个格式中,name的取值范围包含如下几个:

    • locale:该选项指定该模板所用的国家/语言选项
    • number_format:指定格式化输出数字的格式
    • boolean_format:指定两个布尔值的语法格式,默认值是true,false
    • date_format,time_format,datetime_format:指定格式化输出日期的格式
    • time_zone:设置格式化输出日期时所使用的时区
    7.4 macro ,nested,return 指令

    macro可以用于实现自定义指令,通过使用自定义指令,可以将一段模板片段定义成一个用户指令,使用macro指令的语法格式如下:

    <#macro name param1 param2 ... paramN> 
    ... 
    <#nested loopvar1, loopvar2, ..., loopvarN> 
    ... 
    <#return> 
    ... 
    </#macro> 
    

    在上面的格式片段中,包含了如下几个部分:

    • name:name属性指定的是该自定义指令的名字,使用自定义指令时可以传入多个参数
    • paramX:该属性就是指定使用自定义指令时报参数,使用该自定义指令时,必须为这些参数传入值
    • nested指令:nested标签输出使用自定义指令时的中间部分
    • nested指令中的循环变量:这此循环变量将由macro定义部分指定,传给使用标签的模板
    • return指令:该指令可用于随时结束该自定义指令.

    相关文章

      网友评论

        本文标题:freemarker( 二)

        本文链接:https://www.haomeiwen.com/subject/avmwdttx.html