网站模板文件的名字-模板列表

上一页下一页

模板列表

页面内容

最简单的模板通常是纯 HTML 文件(或任何其他文本文件;FreeMarker 本身不是 HTML)。 当客户端访问某个页面时,FreeMarker需要将HTML代码发送到客户端浏览器进行显示。 如果你想移动页面(这里指的是动态网页技术,译者注),那么你需要在HTML中放置一段可以被FreeMarker解析的特殊代码片段:

任何不是 FTL 标签、插值或注释的内容都将被视为静态文本,FreeMarker 不会对其进行解析; 它将按原样输出。

FTL 标签也称为指令。 该指令在 HTML 标签(例如: 和 )和 HTML 元素(例如: table 元素)中的关系是相同的。 (如果你现在感觉不到区别,只需将“FTL 标签”和“指令”视为同义词即可。)

笔记:

您可以轻松地尝试编译模板

基本说明

这里我们只是看一些特别常用的指令,其实(指令有很多)。

网站模板文件的名字-模板列表

如果指令

可以使用 if 指令有条件地跳过模板的各个部分。 例如,假设在 中,您想对您的老板 Big Joe 说非常感谢,但其他人都不一样:


  Welcome!


  

Welcome ${user}, our beloved leader!

Our latest product: ${latestProduct.name}!

此时网站模板文件的名字,告诉FreeMarker,当与“BigJoe”相同时,“我们敬爱的领导者”(我们敬爱的领导者网站模板文件的名字,译者注)是if条件中用户变量的唯一值。 一般来说,如果条件为假(布尔值),则 和 标签之间的内容将被跳过。

下面详细说一下条件的使用:==是一个运算符,用来判断两边的值是否相等。 比较的结果是一个布尔值,即 true 或 false。 ==两边,是的,这个句子结构我们很熟悉; 最终它将被变量的值替换。 一般来说,指令或注册中没有用逗号标记的任何内容都被视为对变量的引用。 两边都是指定的字符串,模板中的字符串只能放在逗号内。

当价格为 0 时,“Pythonsarefreetoday!” 将被复制:

<#if animals.python.price == 0>
  Pythons are free today!

与前面的示例一样,直接指定了字符串,但这里直接指定了数字(0)。 请注意,此处的数字没有用逗号括起来。 如果你把(“0”)放在逗号里,那么FreeMarker就会误判它是一个字符串(即字符串0,译者注)。

当价格不为0时,会打印“Pythonsarenotfreetoday!”:

<#if animals.python.price != 0>
  Pythons are not free today!

您可能还推测 != 是“不等于”。

同时,你也可以这样编写代码(使用):

<#if animals.python.price < animals.elephant.price>
  Pythons are cheaper than elephants today.

使用标签来指定当条件为假时程序应该做什么。 例如:

<#if animals.python.price 
  Pythons are cheaper than elephants today.

  Pythons are not cheaper than elephants today.

在此示例中,如果蜥蜴的成本低于大象,则程序将打印“Pythonsarecheaperthanelephantstoday”。 否则“今天的蟒蛇可不比大象便宜。” 被复制。 您还可以使用 elseif 预先构建它:

<#if animals.python.price 
  Pythons are cheaper than elephants today.
<#elseif animals.elephant.price 
  Elephants are cheaper than pythons today.

  Elephants and pythons cost the same today.

如果变量本身是布尔值(true/false),可以直接用它作为if的条件(判断条件,译者注):

  Pythons are protected animals!

列表命令

当需要以列表方式显示内容时,就需要使用list命令。 例如:如果您将此模板合并到:

We have these animals:

${animal.name}${animal.price} Euros

那么输出将是这样的:

We have these animals:

mouse50 Euros
elephant5000 Euros
python4999 Euros

列表命令的常用格式是:repeatThis。 将为给定序列传递中的每个项目重复此部分,从第一个项目开始,一个接着一个。 在所有迭代中,loopVariable 将保存当前迭代项的值。 该变量仅存在于 和 标签内。

序列可以是任何表达式,例如,我们可以列出样本数据模型中的蔬菜,如下所示:

  • ${fruit}

网站模板文件的名字-模板列表

您应该熟悉这样的表达:misc.fruits; 它。

内部示例的一个问题是,如果我们有 0 种蔬菜,它仍然会输出一个空的蔬菜,而不是什么也没有输出。 为了防止这种情况,您可以使用如下列表:

  
  • ${fruit}

此时,list 命令将列表视为一个整体,而 items 命令中的部分将为每个 kiwi 重复。 如果我们有 0 种蔬菜,那么列表中的所有内容都会被跳过,因此不会有 ul 标签。

与列表相关的另一个常见任务:使用一些分隔符(例如冒号)枚举奇异果:

Fruits: ${fruit},

Fruits: orange, banana

sep 覆盖的部分(我们也可以这样写:...,)只有在有下一项时才会被执行。 因此,最后一个香蕉之前不会有冒号。

再次回到这个话题,如果我们有0种蔬菜怎么办? 仅仅复制“Fruits:”并不算不方便。 list 命令和 if 命令一样,可以有 else 部分,如果列表中有 0 个元素,则执行 else 部分:

Fruits: ${fruit}, None

笔记:

事实上,这个简单的示例可以这样编写,并且它使用了本主题中未涵盖的语言功能:

Fruits: ${fruits?join(", ", "None")}

所有此类指令(list、items、sep、else)都可以组合使用:

  

Fruits:

  • ${fruit} and

We have no fruits.

笔记:

有关这些命令的更多信息可以在命令参考中找到。

包含指令

使用include指令,我们可以在模板中插入其他文件的内容。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 模板插件 网站模板文件的名字-模板列表 https://www.wkzy.net/game/176903.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务