`

freemarker 数据基础 二

 
阅读更多

FreeMarker数据基础二

2010-07-02 15:25:00| 分类: FreeMarker 2.3.1 | 标签: |字号 订阅

1.String

特殊字符表示:

 

特殊字符表示 意义
\" " (u0022)
\' ' (u0027)
\\ \ (u005C)
\n 换行 (u000A)
\r 回车 (u000D)
\t 水平制表 (u0009)
\b 退格 (u0008)
\f 换页 (u000C)
\l <
\g >
\a &
\xCode 十六进制Unicode码 (UCS码),\x后为1到四位的十六进制数

 

可以在String中插入表达式(${}或者#{})

例1:

 

${"Hello ${user}!"}
${"${user}${user}${user}${user}"}  

 

或者使用+号:

 

${"Hello " + user + "!"}
${user + user + user + user}  

 

输出:

 

Hello Big Joe!
Big JoeBig JoeBig JoeBig Joe  

 

 

为了表明此为原String,没有什么特别意义,则可以在插入标签中加入r

例2:

 

${r"${foo}"}
${r"C:\foo\bar"}  

 

输出:

 

${foo}
C:\foo\bar  

 

 

检索字符:

例3:user值为"Big Joe''

 

${user[0]}
${user[4]}  

 

输出:

 

B
J  

 

2.Numbers

注意不能省略小数分隔符前的0(如.5应写成0.5)。FreeMarker中=在逻辑判断语句中等价于==。

运算时Numbers可以自动转化成String,而String不能转化为Numbers。

例如下:

 

${3 + "5"}  

 

输出:

35
如果希望只得到结果整数部分,可以如下写:

${(x/2)?int}
${1.1?int}
${1.999?int}
${-1.1?int}
${-1.999?int}  
输出:

2
1
1
-1
-1  
 

3.Booleans

4.Sequences (序列)

例4:

 

<#list ["winter", "spring", "summer", "autumn"] as x>
${x}
</#list>  

 

输出:

 

winter
spring
summer
autumn
   

 

用+连接序列(尽管串联序列很快[取决于被串联序列的长度],但是结果序列的读取将比直接读取两个序列要慢一些):

例5:

 

<#list ["Joe", "Fred"] + ["Julia", "Kate"] as user>
- ${user}
</#list>  

 

输出:

 

- Joe
- Fred
- Julia
- Kate
   

 

 

序列检索:

形式为Seq[firstindex..lastindex],如果检索到末尾,则lastindex可以省略

(!注意:在FreeMarker 2.3.3之后lastindex才可以省略)

例6:

如果seq存储了 "a", "b", "c", "d", "e", "f",则:

表达式 seq[1..4]将输出:

"b", "c", "d", "e"

表达式seq[3..]将输出:

"d", "e", "f"

5.Hashes(哈希)

一组由key和value组成的列表,如:{"name":"green mouse", "price":150}

(!注意:FreeMarker中[]可以替代<>)

和String一样,哈希也可以使用+串联两个哈希,如果出现重名,+右边的哈希有优先权

例7:

 

<#assign ages = {"Joe":23, "Fred":25} + {"Joe":30, "Julia":18}>
- Joe is ${ages.Joe}
- Fred is ${ages.Fred}
- Julia is ${ages.Julia}  

 

输出:

 

- Joe is 30
- Fred is 25
- Julia is 18  
分享到:
评论

相关推荐

    FreeMarker的基础知识整理

    FreeMarker 是一种强大的模板语言,主要用于生成动态内容,如HTML页面。...FreeMarker的核心概念是将静态的...对于初学者来说,理解FreeMarker的基础知识,如变量类型、模板结构和插值机制,是掌握这一技术的关键步骤。

    freemarker获取数据

    2. 数据模型:Freemarker与后端代码交互的主要方式是数据模型,这是将Java对象暴露给模板的桥梁。数据模型可以是任何实现了`Map`接口的对象,或者使用`TemplateModel`接口的自定义对象。 3. 模板解析:Freemarker...

    Freemarker实现excel导出功能

    2. 数据模型:在使用Freemarker生成任何输出之前,需要准备一个数据模型,这个模型通常是Java对象或Map,包含了要在模板中使用的数据。 3. 模板解析:Freemarker引擎会解析模板文件,并结合数据模型生成最终的输出...

    struts2和freemarker整合

    Struts2是一个基于MVC(Model-View-Controller)架构模式的开源框架,用于构建动态、数据驱动的Web应用程序,而FreeMarker则是一个模板引擎,它允许开发者将业务逻辑与视图层分离,使得前端展示更加灵活和高效。...

    freemarker

    2. **数据模型(Data Model)**:数据模型是Freemarker用来渲染模板的数据源,它可以是Java对象、Map、List等任何形式。在Java中,通常通过`ModelAndView`或`Map`将数据传递给Freemarker。 3. **Freemarker指令...

    非常好的Freemarker中文教程

    1. **基础概念**:Freemarker的工作原理,模板语言的基础元素,如变量、表达式、控制结构(if/else、foreach)以及注释等。 2. **数据模型**:理解如何将Java对象绑定到模板,包括基本类型、集合、Map等数据结构的...

    freemarker入门文档及例子

    二、Freemarker语法基础 1. 变量表示: `${variable}` 用于输出变量的值,`variable`是Java对象的属性或方法名。 2. 注释:`&lt;#-- comment --&gt;` 用于在模板中添加注释,不会出现在生成的输出中。 3. 输出处理:`...

    freemarker-2.3.28.jar

    2. **数据模型绑定**: Freemarker的核心概念之一是数据模型,开发者将Java对象暴露给模板,模板通过这些对象来生成输出。比如,一个Web应用可以将请求上下文中的ModelAndView对象传递给Freemarker,然后在模板中引用...

    FreeMarker手册-Freemarker 2.3.18

    2. **数据模型和变量** FreeMarker的核心概念是数据模型,它是由Java对象构成的结构,这些对象可以被模板引用。在模板中,你可以通过`.`操作符访问对象的属性,如`${user.name}`来获取用户对象的name属性。 3. **...

    Freemarker分页

    在这个例子中,我们看到的是如何在使用Struts2框架的基础上,集成Freemarker进行分页处理。以下是对这个主题的详细讲解: 首先,**Freemarker** 是一个模板引擎,它允许开发者通过定义模板来生成HTML或其他文本格式...

    FreeMarker

    FreeMarker 提供了一些基础的语法结构,如变量赋值、条件语句、循环等。下面是一些常见的符号和命令的解释: - **变量赋值**:使用 `&lt;#assign name=value&gt;` 来赋值。 - **条件语句**:可以使用 `&lt;#if expression&gt;` ...

    Struts2 和freemarker实例

    10. **Struts2与FreeMarker的集成**:如何在Action中设置模型数据,然后在FreeMarker模板中获取并显示这些数据。 11. **测试Struts2应用**:了解如何使用JUnit进行单元测试,以及Struts2提供的Mock对象进行集成测试...

    freemarker 语法基础(转).

    ### FreeMarker 语法基础 #### 一、FreeMarker 模板结构 FreeMarker 是一种用于生成文本输出的模板引擎,其模板文件结构简单且易于理解。一个典型的 FreeMarker 模板文件由以下四个主要部分组成: 1. **文本**:...

    freemarker中文学习资料

    1. **Freemarker基础概念** - **模板语言**:Freemarker使用一种简单的、声明式的模板语言,允许开发者编写模板,与后台数据模型结合,生成动态内容。 - **数据模型**:Freemarker模板与应用程序的数据模型进行...

    freemarker培训课件

    具体而言,开发者创建模板,这些模板包含固定文本、变量插值、逻辑控制结构等元素,通过将数据模型中的数据注入到模板中,Freemarker能够生成动态的文本输出。 ### 3. 模板开发 #### 模板组成 - **Text文本**:...

    freemarker项目(从入门到与struts2结合)

    通过这个项目,你可以逐步掌握FreeMarker的基础知识,以及它与Struts2的集成方式,进一步提升在Web开发中的视图层能力。测试文件`testFreeMarker`和`testFreemarker2`可能包含了练习模板和Action的实例,用于实践...

    Struts2与FreeMarker模板

    通过将Struts2的模型数据传递给FreeMarker模板,前端开发人员可以使用FreeMarker提供的丰富的模板标签和函数来渲染页面。 #### 配置Struts2与FreeMarker 在Struts2中使用FreeMarker之前,首先需要进行相应的配置。...

    freemarkerdemo 生成word 插入图片

    1. **Freemarker基础知识**:Freemarker是一个基于模板的语言,它允许开发者通过定义模板文件,然后结合Java对象数据,生成动态内容。模板文件中包含了一系列控制结构(如条件语句、循环)和变量引用,这些变量可以...

    freemarker 源码、中文API、 freemarker Myeclipse 编辑器

    例如,Freemarker支持控制结构(如if、foreach)、变量表达式、函数调用等,这些都是构建动态页面的基础。同时,手册还会详细介绍如何配置和优化Freemarker以适应你的项目需求。 其次,`freemarker 插件 安装提示....

Global site tag (gtag.js) - Google Analytics