`

FreeMarker+struts学习内置函数

    博客分类:
  • J2EE
阅读更多
FreeMarker  struts2 笔记
它是模板引擎
下载路径:www.FreeMarker.org
下载后文件夹的结构如下:
examples是 包含了一个名问 FreeMarker的事例应用
docs包含了 Freemarker的相关帮助文档
src包含了FreeMarker的 全部源代码 
lib是 核心内库
  

它的变量标识符是:${}或<#>

基本语法:
FTL标签:
<h1>欢迎:${username}</h1>
<#list sequence as item>

1 if else/if else 指令
<#if condition>
...
<#else if condition2>
...
<#else if condition3>
..
<#else>
...
</#if>

2 list break指令
<#list hash_or_seq as item>
..
<#if item="struts2"><#break><#if>
...
</#list>

3 switch case default break指令
<#switch [value]>
<#case [refValue1]>
...
<#break>
<#case refValue2>
..
<#break>
....
<#case refValueN>
...
<#break>
<#default>
...
<#break>
</#switch>

4 include指令
<#include [filename options ] encoding="GBK" parse=true >

5 import指令 
<#import path as hash>
例:<#import "/test.ftl" as t >
<@t.imp title="这是import指令的例子"/>

6 noparse指令  不主力指令里包含的内容
<#noparse>
...
<#noparse>
例:<#noparse>
<#assign score=70>
<#if(score>60)>成绩及格
<#else>成绩不及格
<#if>
<#noparse>

7 compress指令  用来压缩空白行的
<#compress>
...
</#compress>

8  escape  noescape指令  是使被escape指令包围的Interpolation自动加上escape表达式
<#escape identifer as expression>
...
<#noescape >....</#noescape>
...
</#escape>
例:<#escape el as el?html>
用户名:${username}
地址:${address}
年龄:${age}
</#escape>
等同与以下代码:
用户名:${username?html}
地址:${address?html}
年龄:${age?html}
如果在 escape指令中某些Interpolation不需要添加escape表达式,则使用noescape指令
例:<#escape el as el?html>
用户名:${username}
<#noescape>地址:${address}</#noescape>
年龄:${age}
</#escape>
等同与以下代码:
用户名:${username?html}
地址:${address}
年龄:${age?html}

9  assign指令  作用是定义和隐藏变量,前面已经用过,assign指令不仅能定义 或隐藏一个变量,还能定

义或隐藏 变量 ,还能定音和隐藏多个变量
<#assign name=value>
  assign指令  作用是定义和隐藏变量,前面已经用过,assign指令不仅能定义 或隐藏一个变量,还能定

义或隐藏 变量 ,还能定音和隐藏多个变量,若想 定义或隐藏多个变量则使以下语法
<#assign name1=value1 name2=value2  ...  nameN=valueN>
Freemarker允许 assign指令 用in子句将定义的变量放入namespace(命名空间)中,语法如下:
<#assign name in namespace>
assign 指令 可以把一段输出的 文本作为变量,将变量的值赋给name,语法如下:
<#assign name >
循环部分输出部分
</#assign>
事例代码:
<#assign x>
<#list ["春天","夏天","秋天","冬天"] as reason>
${reason_index}:${reason}
</#list>
</#assign>
${x}
小注意:使用assign指令的时候,建议使用 <#assign x=“${username}”/>这中语法
assign还允许 将name定义成中文 ,事例:
<#assign 顾客=“欢迎你 :${customer}”/>
${顾客}

10 global指令  也是 定义变量  它是定义全局变量
<#global name>

11 setting指令  设置系统的运行环境,name的取值范围有以下几个
local 设置模板语言所用的 国家、语言选项
number_format 设置 格式化输出数字的格式
boolean_format 设置 2个boolean值的 语法格式,默认值是“true”,“false”
date_format,time_format,datetime_format 设置格式化输出日期的格式
url_escaping_charset 设置URL传递参数的字符集编码格式
time_zone 设置格式化输出日期所使用的时区
<# setting name=value>
事例:<#setting number_format="percent"/>
<#assisn num=10/>
${num}
<#setting number_format="currency"/>
${num}
结果为:1000%,¥10.00

12 宏
<#macro name param2 ... paramN>
...
<#nested loopvar1,loopvar2,....,loopvarN>
...
<#rturn >
...
</#macro>

13 t  It  rt  nt 指令
<#t> 去掉左右空白和回车换行
<#It> 去掉左边空白和换行
<#rt> 去掉右边空白和换行
<#nt> 取消上面的效果

14  Interpolation
通用Interpolation 用${expre}表示,数字专用Interpolation 用 #{expre}或 #{expre;format}
事例代码 :
<#setting number_format="percent"/>
<#assign num=10/>
${num}
${num?string.number}
${num?string.percent}
${num?string.cutrrency}
结果为 :1000%  10   1000%   ¥10.00
当 expre为日期时,会根据setting指令确定格式
<#--由setting指令确定-->
<#setting date_format="yyyy-MM-dd HH:mm:ss zzzz">
现在时间为:${nowDate?date?string}<br>
<#--由内置的转换格式确定-->
现在的时间为 :${nowDate?datetime?string.short}<br>
现在的时间为 :${nowDate?datetime?string.long}<br>
<#--自己指定日期-->
现在的时间为 :${nowDate?string("EEEE,MMM d,yy")}<br>
上面的输出为:
现在的时间为 :2008-05-02 09:48:33 中国标准时间
现在的时间为 :08-5-2 上午9:48
现在的时间为 :2008年5月2日 上午09时48分33秒
现在的时间为 :星期五,五月 2,08


15 其他
截取字符串
<#assign name="George Bush">
${name[1]}${name[7]}
${name[1..5]}
结果: eB   George

散列(hash)操作:
<#assign userlist={"username":"sunyang","age":30}+{"address":"cc","age":25}>
username:${userlist.username}
age:${userlist.age}
address:${userlist.address}
结果:
username:sunyang
age:25
address:cc

内建函数:
1)字符串函数:
html:对字符串进行 HTML编码
cap_first 使字符串第一个字母大写
lower_case:将字符串转换成小写
upper_case:将字符串转换成大写
trim:去掉字符串 前后的 空白字符
2)集合函数
size 获得序列中元素的数目
3)int 取得数字的整数部分,如2.8?int的结果为2

分享到:
评论

相关推荐

    freemarker+struts2.0 实例20090309.rar

    此外,优化模板布局、合理使用FreeMarker的控制结构和内置函数,可以提升页面渲染效率。 通过这个实例,我们可以了解到FreeMarker与Struts2.0集成的基本流程和关键点,这对于理解和实践MVC模式在Web开发中的应用...

    FreeMarker+中文手册

    3. **模板语言(Template Language)**:FreeMarker的模板语言包括了一系列的指令和内置函数,如`&lt;#if&gt;`用于条件判断,`&lt;#foreach&gt;`用于循环,`&lt;#assign&gt;`用于赋值等。 4. **配置(Configuration)**:FreeMarker的...

    JavaScript+php5+struts2帮助文档

    学习Struts2,你需要了解Action、配置文件(struts.xml)、拦截器链、结果类型(例如JSP、FreeMarker或Velocity模板)、国际化和验证机制。同时,Struts2与其他框架(如Hibernate进行ORM、Spring进行依赖注入)的...

    freemarker_struts2_demo

    FreeMarker的核心概念包括变量、控制结构(如if、for)和内置函数,它们用于处理数据模型并生成最终的输出。 Struts2是Apache软件基金会的顶级项目,它继承了Struts1的优点,并引入了更多现代Web开发的需求。Struts...

    struts2和freemarker整合

    1. **基础概念**:解释了FreeMarker模板语言的基本元素,如变量、控制结构(if/else、foreach)、内置函数和方法。 2. **数据模型**:描述如何将Java对象绑定到模板,以及如何访问对象的属性。 3. **模板设计**:...

    freemarker --struts中的应用

    FreeMarker的强大之处在于其丰富的内置函数和指令,比如 `if`、`foreach` 用于条件判断和循环,`include` 用于引入其他模板,`#set` 用于变量赋值等。这些功能使得模板设计更加灵活和高效。 在实际开发中,为了更好...

    struts2中使用freeMarker

    - FreeMarker提供了许多内置函数,如`?html`(转义HTML特殊字符)、`?replace`(字符串替换)等,以及`&lt;#list&gt;`、`&lt;#nested&gt;`等指令,增强了模板的功能。 7. **模板继承和导入**: - FreeMarker支持模板继承,...

    Struts2、Spring、Freemarker自定义标签

    Freemarker支持条件判断、循环结构、内置函数,以及自定义标签,增强了模板的灵活性。与JSP相比,Freemarker通常被认为更简洁、易读且更易于维护。 将这三个框架结合使用,可以构建出高效、灵活的Java Web应用。...

    Struts2与FreeMarker模板

    除了这些基本指令外,FreeMarker还提供了一系列内置函数,如`is_collection`, `keys`, `interpret`, `is_macro`, `matches`, `sort`, `html`, `time`, `index_of`, `values`, `right_pad`, `xml`, `date`, `web_safe...

    freemarker Demo 适用于freemarker初学

    Freemarker是一个强大的模板引擎,常用于JavaEE应用中的视图层处理,尤其与Struts2等MVC框架配合使用,能实现灵活的动态页面...在学习过程中,可以逐步尝试不同的表达式、控制结构和内置功能,加深对Freemarker的理解。

    Freemarker教程及jar包

    3. **内置函数和指令**:掌握Freemarker提供的各种内置函数,如`?html`用于转义HTML字符,`&lt;#assign&gt;`用于声明和赋值变量。 4. **数据模型**:理解如何创建和组织数据模型,将Java对象映射到模板变量。 5. **模板...

    FreeMarker手册-Freemarker 2.3.18

    FreeMarker提供了一系列内置函数,如`?html`用于转义HTML特殊字符,`?replace`进行字符串替换,`?upper_case`和`?lower_case`进行大小写转换。此外,还有算术操作符(+、-、*、/、%)、比较操作符(==、!=、&lt;、&gt;、...

    Freemarker中文手册+教程(史上最全API)

    - **内置函数**:例如字符串操作、日期格式化等,提供丰富的功能支持。 3. **数据模型与变量** - **对象绑定**:Freemarker模板可以从Java对象中获取数据,这些对象构成了数据模型。 - **作用域**:变量有局部...

    freemarker及jeecms标签使用学习文档

    - `Freemaker_入门+深入+开发指南+学习笔记.doc`:这份文档提供了从基础到高级的Freemarker学习路径,包括基本语法、模板设计原则和实践案例。 - `freemaeker全面教程.doc`:这份教程全面覆盖了Freemarker的各个...

    freemarker案例

    - 使用Freemarker的内置函数和宏库,如日期处理、字符串操作等,提高代码可读性。 - 合理组织模板目录结构,便于管理和复用。 综上,这个案例展示了如何在Struts2项目中使用Freemarker进行视图层开发,通过模板...

    freemarker中文文档与包

    5. **内置函数与指令**: Freemarker提供了一系列内置的函数和指令,如`?html`用于转义HTML特殊字符,`?upper_case`将字符串转化为大写,`&lt;#list&gt;`用于遍历集合等,这些功能极大地丰富了模板的表达能力。 6. **...

    struts2所必需的5个包

    FreeMarker支持多种控制结构和内置函数,使得模板设计更加灵活和易于维护。 2. **ognl-2.6.11.jar**:OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。在Struts2...

    FreeMarker

    10. **与其他技术的集成**:FreeMarker 能很好地与Spring框架、Struts框架等结合使用,提供Web应用的视图层解决方案。同时,它也可以与各种数据源(如数据库、XML文件)交互,获取数据。 综上所述,FreeMarker是一...

    freemarker中文手册

    综上,这份Freemarker中文手册涵盖了Freemarker的基本概念、语法、内置函数、与Java的交互方式以及高级特性和最佳实践,是学习和使用Freemarker不可或缺的参考资料。通过深入阅读和实践,开发者能够熟练地运用...

    SSH freemarker例子学习 拿来就能用 注释全面

    FreeMarker提供了丰富的内置指令和函数,如`#if`、`#foreach`、`#set`等,使得模板可以进行条件判断、循环和变量操作。此外,FreeMarker支持国际化、模板继承、宏定义等功能,增强了其灵活性和可维护性。 总之,SSH...

Global site tag (gtag.js) - Google Analytics