总体结构
模版实际上是你用FTL(FreeMarker 模版语言)编写的程序.这是一个简单的编程语言,仅被设计用来实现模版的,而不是其他复杂的东西.
一个模版(FTL程序)由以下几部分构成:
- 文本: 文本会被原样输出.
- 内插值:这部分在输出的时候会被实际计算的值代替.内差值由${和}包围(或者#{和}).
- FTL 标签:FTL标签和HTML标签类似,但他们实际上FreeMarker的指令,不会被打印到输出中.
- 注释:这里的注视也和HTML中的注视类似,但是他们是使用 <#-- 和 -->包围的.FreeMarker会忽略注视,不会被写到输出中.
<html>[BR]FTL区分字母大小写.所以list是一个正确的指令,而List不是.同样的,{name}不同于{Name}或者{NAME}.
<head>[BR]
<title>Welcome!</title>[BR]
</head>[BR]
<body>[BR]
<#-- Greet the user with his/her name -->[BR]
<h1>Welcome ${user}!</h1>[BR]
<p>We have these animals:[BR]
<ul>[BR]
<#list animals as being>[BR]
<li>${being.name} for ${being.price} Euros[BR]
</#list>[BR]
</ul>[BR]
</body>[BR]
</html>
注意在内插值仅可以直接使用在文本中,以及字符串表达式中.
一个FTL标签不能内嵌在另一个FTL标签中,或者使用在内差值当中.例如,下面的表达是错误的: <#if <#include 'foo'>='bar'>...</#if>
注释可以放在FTL标签和内差值内部.例如:
<h1>Welcome ${user <#-- The name of user -->}!</h1>[BR]
<p>We have these animals:[BR]
<ul>[BR]
<#list <#-- some comment... --> animals as <#-- again... --> being>[BR]
...注意你们如果尝试过上述例子,你也许注意到,一些空格,制表符和换行符,在输出的时候会丢失,尽管我们说文本会被原样输出.现在先别为这个操心,这是因为” white-space stripping”(空白-剥离)特性被设置的缘故,这个特性会自动移除多余的空格,制表符和换行符.
没有评论:
发表评论