Freemarker模板

编程入门 行业动态 更新时间:2024-10-10 00:20:43

Freemarker<a href=https://www.elefans.com/category/jswz/34/1770549.html style=模板"/>

Freemarker模板

1.概述

FreeMarker模板文件主要有5个部分组成:

  1. 数据模型:模板能用的所有数据
  2. 文本,直接输出的部分
  3. 注释,即<#–…–>格式不会输出
  4. 插值(Interpolation):即${…}或者#{…}格式的部分,将使用数据模型中的部分替代输出
  5. FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。

2.数据模型

FreeMarker(还有模板开发者)并不关心数据是如何计算的,FreeMarker 只是知道真实的数据是什么。模板能用
的所有数据被包装成 data-model 数据模型

3.模板的常用标签

在FreeMarker模板中可以包括下面几个特定部分:

  1. ${…}:称为interpolations,FreeMarker会在输出时用实际值进行替代。
    ${name}可以取得root中key为name的value。
    ${person.name}可以取得成员变量为person的name属性
  2. <#…>:FTL标记(FreeMarker模板语言标记):类似于HTML标记,为了与HTML标记区分
  3. <@>:宏,自定义标签
  4. 注释:包含在<#–和–>(而不是)之间

4.模板的常用指令

  • if指令
    分支控制语句
   	  <#if condition>....<#elseif condition2>...<#elseif condition3>      ...<#else>...</#if>
  • list、break指令
    list指令时一个典型的迭代输出指令,用于迭代输出数据模型中的集合
  	   <#list sequence as item>...</#list>除此之外,迭代集合对象时,还包括两个特殊的循环变量:a、item_index:当前变量的索引值。b、item_has_next:是否存在下一个对象也可以使用<#break>指令跳出迭代<#list ["星期一","星期二","星期三","星期四","星期五"] as x>${x_index +1}.${x} <#if x_has_next>,</#if><#if x = "星期四"><#break></#if></#list>
  • include 指令
    include指令的作用类似于JSP的包含指令,用于包含指定页,include指令的语法格式如下
 <#include filename [options]></#include>在上面的语法格式中,两个参数的解释如下a、filename:该参数指定被包含的模板文件b、options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,encoding 指定包含页面时所使用的解码集,而parse指定被包含是否作为FTL文件来解析。如果省略了parse选项值,则该选项值默认是true
  • assign指令
    它用于为该模板页面创建或替换一个顶层变量
<#assign name = zhangsan />
  • 内置函数
    FreeMarker还提供了一些内建函数来转换输出,可以在任何变量后紧跟?,?后紧跟内建函数,就可通过内建函
    数来转换输出变量。下面是常用的内建的字符串函数:
		 ?html:html字符转义?cap_first: 字符串的第一个字母变为大写形式?lower_case :字符串的小写形式?upper_case :字符串的大写形式?trim:去掉字符串首尾的空格?substring:截字符串?lenth: 取长度?size: 序列中元素的个数?int : 数字的整数部分(比如- 1.9?int 就是- 1)\?replace:字符串替换

示例:

<#-- assign指令 : 再ftl模板中定义数据存入到root节点下
<#assign name="zhangsan">
--><#--
${name}欢迎您:${username}
-->
<#-- 获取数据  ${根节点下的数据....属性} --><#-- if指令
<#if flag=1>传入数据=1<#elseif flag=2>传入数据=2<#else>传入数据=其他
</#if>--><#-- list指令 : 循环迭代数据名称 as 别名<#list weeks as abc>${abc_index} =  ${abc}
</#list>
--><#--模板包含 include
<#include "template02.ftl" >
-->${username?lower_case}

更多推荐

Freemarker模板

本文发布于:2023-11-30 14:04:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1651045.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模板   Freemarker

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!