`

FreeMarker设计指南(3)

阅读更多

3、模板

1)整体结构

l         模板使用FTLFreeMarker模板语言)编写,是下面各部分的一个组合:

Ø         文本:直接输出

Ø         Interpolation:由${},或#{}来限定,计算值替代输出

Ø         FTL标记:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出

Ø         注释:由<#---->限定,不会输出

l         下面是以一个具体模板例子:

<html>[BR]
<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>  

l         [BR]是用于换行的特殊字符序列

l         注意事项:

Ø         FTL区分大小写,所以list是正确的FTL指令,而List不是;${name}${NAME}是不同的

Ø         Interpolation只能在文本中使用

Ø         FTL标记不能位于另一个FTL标记内部,例如:

<#if <#include 'foo'>='bar'>...</if>

Ø         注释可以位于FTL标记和Interpolation内部,如下面的例子:

<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]
...  

Ø         多余的空白字符会在模板输出时移除

2)指令

l         FreeMarker中,使用FTL标记引用指令

l         有三种FTL标记,这和HTML标记是类似的:

Ø         开始标记:<#directivename parameters>

Ø         结束标记:</#directivename>

Ø         空内容指令标记:<#directivename parameters/>

l         有两种类型的指令:预定义指令和用户定义指令

l         用户定义指令要使用@替换#,如<@mydirective>...</@mydirective>(会在后面讲述)

l         FTL标记不能够交叉,而应该正确的嵌套,如下面的代码是错误的:

<ul>
<#list animals as being>
  <li>${being.name} for ${being.price} Euros
  <#if use = "Big Joe">
     (except for you)
</#list>
</#if> <#-- WRONG! -->
</ul>  

l         如果使用不存在的指令,FreeMarker不会使用模板输出,而是产生一个错误消息

l         FreeMarker会忽略FTL标记中的空白字符,如下面的例子:

<#list[BR]
  animals       as[BR]
     being[BR]
>[BR]
${being.name} for ${being.price} Euros[BR]
</#list    >  

l         但是,<</和指令之间不允许有空白字符

3)表达式

l         直接指定值

Ø         字符串

n         使用单引号或双引号限定

n         如果包含特殊字符需要转义,如下面的例子:

${"It's \"quoted\" and
this is a backslash: \\"}
 
${'It\'s "quoted" and
this is a backslash: \\'} 

输出结果是:

It's "quoted" and
this is a backslash: \
 
It's "quoted" and
this is a backslash: \ 

n         下面是支持的转义序列:

转义序列

含义

\"

双引号(u0022)

\'

单引号(u0027)

\\

反斜杠(u005C)

\n

换行(u000A)

\r

Return (u000D)

分享到:
评论

相关推荐

    FreeMarker设计指南(完整整理)

    FreeMarker设计指南(完整整理)是我们学习的好帮手!

    FreeMarker设计指南.ppt

    这个“FreeMarker设计指南.ppt”文件很可能是关于如何有效地使用FreeMarker进行模板设计和编程的一份详细教程。以下是FreeMarker的一些核心知识点和相关概念: 1. **模板语言**:FreeMarker是基于文本的模板语言,...

    FreeMarker设计指南

    FreeMarker设计指南 FreeMarker设计指南

    FreeMarker设计指南.doc

    ### FreeMarker设计指南知识点 #### 一、快速入门 **模板+数据模型=输出** - **设计理念**: FreeMarker的设计理念是区分设计者与程序员的角色,让两者各司其职。设计者专注于页面的表现形式,例如HTML文件、图像...

    FreeMarker设计指南1

    本设计指南将深入讲解FreeMarker的一些关键特性。 1. **数字和日期支持**:FreeMarker能够对不同类型的数字进行算术运算和比较,包括精度类型。同时,它还能处理日期和时间值的比较和格式化,适应国际化需求。 2. ...

    FreeMarker 设计指南

    FreeMarker 是一个强大的模板引擎,常用于Web应用中的视图层,特别是在Java环境中与Spring MVC等框架配合使用。本设计指南将深入探讨...通过阅读《FreeMarker设计指南》PDF,你可以更深入地学习和掌握这一技术。

    FreeMarker设计指南(PDF版)

    ### FreeMarker设计指南知识点解析 #### 一、FreeMarker简介 **FreeMarker**是一个功能强大的模板引擎,专门用于基于模板生成各类文本输出。该工具完全采用纯Java编写,旨在简化HTML网页的生成过程,尤其适用于...

    FreeMarker设计指南与参考手册

    里面包含FreeMarker设计指南和参考手册。FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序

    FreeMarker设计指南+概述(doc)

    **FreeMarker设计指南** 是一份详尽的文档,旨在帮助开发者理解并有效地使用FreeMarker模板语言。这份指南涵盖了FreeMarker的核心概念、语法特性以及最佳实践。以下是一些关键知识点: 1. **基础概念**: - **模板...

    Freemarker 设计指南

    FreeMarker 设计指南 FreeMarker 是一个模板引擎,用于生成 HTML Web 页面,特别是基于 MVC 模式的应用程序。它是一个通用工具,使用纯 Java 编写,可以生成各种文本输出,如 HTML、XML、RTF、Java 源代码等。...

    FreeMarker模板设计指南

    FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 虽然FreeMarker具有一些编程的能力...

    FreeMarker指南

    ### FreeMarker设计指南详解 #### 一、FreeMarker概述 FreeMarker是一个强大的模板引擎,用于将数据模型与表现层分离,使得设计者可以专注于页面布局和样式,而程序员则负责处理业务逻辑和数据处理。其核心思想是...

    FreeMarker开发指南

    包括《FreeMarker中文参考手册》、《FreeMarker开发指南》、《FreeMarker设计指南》等手册。

    FreeMarker学习指南

    FreeMarker的核心理念是将设计者的职责与程序员的职责分开,设计者专注于创建模板,而程序员负责处理数据模型,两者通过FreeMarker协同工作。 FreeMarker不依赖于特定的Web容器或HTTP协议,这意味着它可以被集成到...

Global site tag (gtag.js) - Google Analytics