zoukankan      html  css  js  c++  java
  • FreeMarker学习(常用指令)

    参考:http://freemarker.foofun.cn/dgui_quickstart_basics.html

    assign:

      使用该指令你可以创建一个新的变量, 或者替换一个已经存在的变量

    attempt, recover:

      如果你想让页面成功输出内容,尽管它在页面特定位置发生错误也这样, 那么这些指令就是有用的。如果一个错误在 attempt block 执行期间发生, 那么模板执行就会中止,但是 recover block 会代替 attempt block 执行。 如果在 attempt block 执行期间没有发生错误, 那么 recover block 就会忽略。

    compress:

      当你使用了对空白不敏感的格式(比如HTML或XML) 时压缩指令对于移除多余的 空白 是很有用的。它捕捉在指令体(也就是在开始标签和结束标签中)中生成的内容, 然后缩小所有不间断的空白序列到一个单独的空白字符。 如果被替代的序列包含换行符或是一段空间,那么被插入的字符也会是一个 换行符。 开头和结尾的不间断的空白序列将会完全被移除。

    escape, noescape:

      当你使用escape指令包围模板中的一部分时,在块中出现的插值 (${...}) 会和转义表达式自动结合。这是一个避免编写相似表达式的很方便的方法。 它不会影响在字符串形式的插值(比如在 <#assign x = "Hello ${user}!">)。而且,它也不会影响数值插值 (#{...})。

    flush:

      将内容从缓冲区刷新到终端

    function, return:

      自定义函数

    globle:

      该指令和 assign 相似,但是被创建的变量在所有的命名空间中都可见,但又不会存在于任何一个命名空间之中。

    if, else, elseif:

      条件分支指令

    import:

      导入一个新的模板,并设置新的命名空间

    include:

      包含一个新的模板

    list, else, items, sep, break:

      list指令,用于序列的遍历

    local:

      创建局部变量

    macro, nested, return:

      自定义宏

    <#macro name param1 param2 ... paramN>
      ...
      <#nested loopvar1, loopvar2, ..., loopvarN>
      ...
      <#return>
      ...
    </#macro>
    • name: 宏变量的名称,它不是表达式。和 顶层变量 的语法相同,比如 myMacro 或 my\-macro。 然而,它可以被写成字符串的形式,如果宏名称中包含保留字符时,这是很有用的, 比如 <#macro "foo~bar">...。 注意这个字符串没有扩展插值(如 "${foo}")。
    • param1, param2,等...: 局部变量 的名称,存储参数的值 (不是表达式),在 = 号后面和默认值(是表达式)是可选的。 默认值也可以是另外一个参数,比如 <#macro section title label=title>。参数名称和 顶层变量 的语法相同,所以有相同的特性和限制。
    • paramN, 最后一个参数,可能会有三个点(...), 这就意味着宏接受可变数量的参数,不匹配其它参数的参数可以作为最后一个参数 (也被称作笼统参数)。当宏被命名参数调用, paramN 将会是包含宏的所有未声明的键/值对的哈希表。当宏被位置参数调用, paramN 将是额外参数的序列。 (在宏内部,要查找参数,可以使用 myCatchAllParam?is_sequence。)
    • loopvar1, loopvar2等...: 可选的,循环变量 的值, 是 nested 指令想为嵌套内容创建的。这些都是表达式。

      return 和 nested 指令是可选的,而且可以在 <#macro ...> 和 </#macro> 之间被用在任意位置和任意次数。

      没有默认值的参数必须在有默认值参数 (paramName=defaultValue) 之前

    <#macro test foo bar baaz>
      Test text, and the params: ${foo}, ${bar}, ${baaz}
    </#macro>
    <#-- call the macro: -->
    <@test foo="a" bar="b" baaz=5*5-2/>
    <#macro test foo bar="Bar" baaz=-1>
      Test text, and the params: ${foo}, ${bar}, ${baaz}
    </#macro>
    <@test foo="a" bar="b" baaz=5*5-2/>
    <@test foo="a" bar="b"/>
    <@test foo="a" baaz=5*5-2/>
    <@test foo="a"/>

    noparse:

      不会解析该指令包裹的内容,原样输出。

    nt:

      "不要削减"。该指令禁用行中出现的 剥离空白。

    setting:

      配置freemarker,支持的设置有:

    • locale
    • umber_format
    • boolean_format
    • date_format, time_format, datetime_format
    • time_zone
    • sql_date_and_time_time_zone
    • url_escaping_charset
    • output_encoding
    • classic_compatible

    switch, case, default, break:

      同Java swtich分支一样。

    t, lt, rt:

    • t (整体削减):忽略本行中首和尾的所有空白。
    • lt (左侧削减):忽略本行中首部所有的空白。
    • rt (右侧削减):忽略本行中尾部所有的空白。
  • 相关阅读:
    jquery实现选项卡(两句即可实现)
    常用特效积累
    jquery学习笔记
    idong常用js总结
    织梦添加幻灯片的方法
    LeetCode "Copy List with Random Pointer"
    LeetCode "Remove Nth Node From End of List"
    LeetCode "Sqrt(x)"
    LeetCode "Construct Binary Tree from Inorder and Postorder Traversal"
    LeetCode "Construct Binary Tree from Preorder and Inorder Traversal"
  • 原文地址:https://www.cnblogs.com/lpob/p/10835701.html
Copyright © 2011-2022 走看看