assign 

    assign指令在前面已经使用了多次,它用于为该模板页面创建或替换一个顶层变量,

    assign指令的用法有多种,包含创建或替换一个顶层变量,或者创建或替换多个变量等,

    它的最简单的语法如下:

      <#assign name=value [in namespacehash]>,

      这个用法用于指定一个名为name的变量,该变量的值为value,

      此外,FreeMarker允许在使用assign指令里增加in子句,

      in子句用于将创建的name变量放入namespacehash命名空间中.

 

    assign指令还有如下用法:

      <#assign name1=value1 name2=value2 ... nameN=valueN [in namespacehash]>,

      这个语法可以同时创建或替换多个顶层变量,此外,还有一种复杂的用法,

      如果需要创建或替换的变量值是一个复杂的表达式,

      则可以使用如下语法格式:

        <#assign name [in namespacehash]>capture this</#assign>,

      在这个语法中,是指将assign指令的内容赋值给name变量.如下例子:

      <#assign x>
      <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]as n>
      ${n}
      </#list>
      </#assign>
      ${x}
      上面的代码将产生如下输出:

                星期一 星期二 星期三 星期四 星期五 星期六 星期天

      虽然assign指定了这种复杂变量值的用法,但是我们也不要滥用这种用法,

        如下例子:

                 <#assign x>Hello ${user}!</#assign>,

        以上代码改为如下写法更合适:

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

posted on 2018-12-13 13:24  博客园197  阅读(6839)  评论(0编辑  收藏  举报