- 浏览: 142492 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
skylcf:
整个页面的代码呢?
jquery动态添加行并计算总金额 -
dingherry:
没有大图中图,怎么做?
图片放大镜效果 -
yinjj472:
package com.yin.test;
public c ...
JAVA设计模式之单例模式 -
wangyu1221:
放在spring里面,是不是就不用那么多static priv ...
JAVA设计模式之单例模式 -
xurichusheng:
<p> </p&am ...
JAVA设计模式之单例模式
在我们应用Freemarker 过程中,经常会操作例如字符串,数字,集合等,却不清楚Freemrker 有没有类似于Java 一样有相关的类及方法。在本文当中,我将向大家详细的介绍Freemarke 的内置函数及用法,以便能帮助大家更熟练的应用Freemarker 完成项目开发。
一、 Sequence 的内置函数
1. sequence?first 返回sequence 的第一个值。
2. sequence?last 返回sequence 的最后一个值。
3. sequence?reverse 将sequence 的现有顺序反转,即倒序排序
4. sequence?size 返回sequence 的大小
5. sequence?sort 将sequence 中的对象转化为字符串后顺序排序
6. sequence?sort_by(value) 按sequence 中对象的属性value 进行排序
注意:Sequence 不能为null 。
二、 Hash 的内置函数
1. hash?keys 返回hash 里的所有key, 返回结果为sequence
2. hash?values 返回hash 里的所有value, 返回结果为sequence
例如:
<#assign user={“name”: “hailang”, “sex”: “man”}>
<#assign keys=user?keys>
<#list keys as key>
${key}=${user[key]}
</#list>
<#if promo??> //判断promo是否存在
<#list promo as pro>
<#if pro.content?length gte 10>
${pro.content[0..10]}...//截取输出文字的长度
<#else>
${pro.content}
</#if>
</#list>
</#if>
三、 操作字符串函数
1. substring (start,end )从一个字符串中截取子串
start: 截取子串开始的索引,start 必须大于等于0 ,小于等于end
end: 截取子串的长度,end 必须大于等于0 ,小于等于字符串长度,如果省略该参数,默认为字符串长度。
例子:
${‘str’?substring(0)} à 结果为str
${‘str’?substring(1)} à 结果为tr
${‘str’?substring(2)} à 结果为r
${‘str’?substring(3)} à 结果为
${‘str’?substring(0,0)} à 结果为
${‘str’?substring(0,1)} à 结果为s
${‘str’?substring(0,2)} à 结果为st
${‘str’?substring(0,3)} à 结果为str
2. cap_first 将字符串中的第一个单词的首字母变为大写。
${‘str’ ?cap_first} à 结果为Str
3. uncap_first 将字符串中的第一个单词的首字母变为小写。
${‘Str’ ?cap_first} à 结果为str
4. capitalize 将字符串中的所有单词的首字母变为大写
${‘str’ ? capitalize} à 结果为STR
5. date,time ,datetime 将字符串转换为日期
例如:
<#assign date1=”2009-10-12”?date(“yyyy-MM-dd”)>
<#assign date2=”9:28:20”?time(“HH:mm:ss”)>
<#assign date3=” 2009-10-12 9:28:20”?time(“HH:mm:ss”)>
${date1} à 结果为2009-10-12
${date2} à 结果为9:28:20
${date3} à 结果为2009-10-12 9:28:20
注意:如果指定的字符串格式不正确将引发错误。
6. ends_with 判断某个字符串是否由某个子串结尾,返回布尔值。
${ “string”?ends_with(“ing”)?string} 返回结果为true
注意:布尔值必须转换为字符串才能输出
7. html 用于将字符串中的< 、> 、& 和“替换为对应得<>":&
8. index_of (substring,start )在字符串中查找某个子串,返回找到子串的第一个字符的索引,如果没有找到子串,则返回-1 。
Start 参数用于指定从字符串的那个索引处开始搜索,start 为数字值。
如果start 大于字符串长度,则start 取值等于字符串长度,如果start 小于0 , 则start 取值为0 。
${“string”?index_of(“in”) à 结果为3
${“string”?index_of(“ab”) à 结果为-1
9. length 返回字符串的长度 ${“string”?length} à 结果为6
10. lower_case 将字符串转为小写
${“STRING”?lower_case} à 结果为string
11. upper_case 将字符串转为大写
${“string”?upper_case} à 结果为STRING
12. contains 判断字符中是否包含某个子串。返回布尔值
${“string”?contains(“ing”)?string} à 结果为true
注意:布尔值必须转换为字符串才能输出
13. number 将字符串转换为数字
${“111.11”?number} à 结果为111.11
14. replace 用于将字符串中的一部分从左到右替换为另外的字符串。
${“strabg”?replace(“ab”,”in”)} à 结果为string
15. split 使用指定的分隔符将一个字符串拆分为一组字符串
<#list “This|is|split”?split(“|”) as s>
${s}
</#list>
结果为:
This
is
split
16. trim 删除字符串首尾空格 ${“ String ”?trim} à 结果为String
四、 操作数字
1. c 用于将数字转换为字符串
${123?c} à 结果为123
2. string 用于将数字转换为字符串
Freemarker 中预订义了三种数字格式:number,currency (货币)和percent( 百分比) 其中number 为默认的数字格式转换
例如:
<#assign tempNum=20>
${tempNum}
${tempNum?string.number} 或${tempNum?string(“number”)} à 结果为20
${tempNum?string.currency} 或${tempNum?string(“currency”)} à 结果为¥20.00
${tempNum?string. percent} 或${tempNum?string(“percent”)} à 结果为2,000%
五、 操作布尔值
string 用于将布尔值转换为字符串输出
true 转为“true” ,false 转换为“false”
foo?string(“yes”,”no”) 如果布尔值是true, 那么返回“yes ”, 否则返回no
评论
发表评论
-
MyEclipse8.0M安装Extjs插件
2011-04-22 10:01 1254配置安装: 一、下载spket-1.6.16.rar的压缩的 ... -
有关Eclipse的一些总结
2011-04-19 10:06 21851.无法正常启动 MyEclipse启动遇到内部错误 ... -
eclipse 出现 !MESSAGE An error occurred while automatically activating bundle
2011-04-13 18:31 10761在使用eclipse时有时会无缘无故出现 !MESSAGE A ... -
eclipse出现 Avaliable memory Is Low的问题
2011-04-07 18:16 1747如果没有进行设置的话 ... -
时间戳转化成date
2011-03-19 16:10 1362通常数据库中的日期格式都会存成一个时间戳,这样在页面上显示的时 ... -
Struts2与Freemarker的配置方法
2011-02-17 11:00 3280Freemarker是模板引擎,也可以说是一种表现层的框架,它 ... -
JUnit测试,测试类和测试用例的命名规则
2011-01-21 18:00 20091.测试类的命名规则 Test+被测试的业务、被测试的接 ... -
java工作流
2011-01-12 10:35 1083java工作流 OSWorkflow OSWorkflow是 ... -
struts2的struts.properties配置文件详解
2011-01-11 10:10 776struts.action.extension ... -
如何同时启动两个tomcat
2011-01-06 09:28 5124比如:有两个版本的tomcat,一个5.*,一个6.*,此时由 ... -
java去除html代码
2011-01-05 15:30 3979import java.util.regex.Matcher; ... -
JAVA设计模式之原型模式
2010-12-29 13:25 1395原型模式( Prototype Pattern ) ... -
JAVA设计模式之单例模式
2010-12-29 10:02 1384singleton模式的实现 单线程的应用: JAVA代码 ... -
如何安装APK文件到自己的android手机里
2010-12-27 17:36 1899很多朋友刚拿到G1的时 ... -
Android安装和环境搭建
2010-12-24 11:43 1266最近在公司一直改购物商城,不断地完善,在空闲中开始学习andr ... -
有关java对象转换成Json
2010-11-04 10:51 1422Gson是google的一个开源项目,可以把java对象转换成 ... -
JAVA学习中有关socket编程
2010-11-04 10:28 848一个简单的socket案例 服务方: import java ... -
Java freemarker生成html页面
2010-09-13 15:12 3623public class FreemarkerTest { ...
相关推荐
### Freemarker常用内置函数详解 #### 一、概述 Freemarker是一款强大的模板...掌握这些内置函数的使用方法不仅能够提高开发效率,还能使得模板代码更加简洁、易读。希望本文能帮助大家更好地理解和运用Freemarker。
本篇将深入讲解Freemarker的内置函数,结合实际例子,帮助你更好地理解和运用这些功能。 一、变量与表达式 在Freemarker中,变量的引用使用`${}`,例如 `${name}` 将输出变量name的值。表达式可以是简单的变量引用...
本篇文章将深入探讨FreeMarker内置的几个处理方法及其应用场景。 1. **变量表达式**: FreeMarker中的基础元素是变量表达式 `${}`,它用于在模板中显示变量的值。例如,`${name}` 会输出与`name`关联的数据模型中...
主要原因是FreeMarker内置了更多的功能,例如自动转义机制、丰富的内置函数等,这使得开发者无需额外编写工具类或方法即可完成许多常见的任务。而使用**Velocity**时,为了达到类似的效果,则可能需要开发者自己编写...
FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...
这个"freemarker Demo"项目应该包含了基本的模板文件、Struts2配置以及相关的Java代码,通过实际运行和修改这些文件,初学者可以更好地理解Freemarker的工作原理和使用方法。在学习过程中,可以逐步尝试不同的表达式...
接下来我们通过一个具体的示例来理解 Freemarker 的使用方法: ```html <title>Welcome! <!-- 注释部分 --> <h1>Welcome ${user}! <p>We have these animals: ${being.name} for ${being.price} Euros...
4. **函数和方法**:Freemarker支持自定义函数和方法,可以使用内置的函数库,如字符串操作、数学计算等,也可以扩展自定义函数来满足特定需求。 5. **模板继承和导入**:通过`<#import>`和`<#extends>`,模板可以...
1. **基础概念**:解释了FreeMarker模板语言的基本元素,如变量、控制结构(if/else、foreach)、内置函数和方法。 2. **数据模型**:描述如何将Java对象绑定到模板,以及如何访问对象的属性。 3. **模板设计**:...
4. **内置函数和指令**:Freemarker提供了一系列内置函数和指令,如`?html`用于防止XSS攻击,`<#if>`、`<#else>`、`<#foreach>`等用于控制流程。这些功能增强了模板的灵活性和可编程性。 5. **国际化支持**:...
4. **内置函数(Built-in Functions)**:Freemarker提供了许多内置函数,如`?html`(防止XSS攻击)、`?length`(获取数组或列表长度)等,可以方便地在模板中处理数据。 5. **变量(Variables)**:在模板中,你...
4. **内置函数和宏** - 支持内置的字符串处理、日期时间操作等功能,并允许自定义宏(类似于函数)。 5. **缓存机制** - 可以缓存编译后的模板,提高性能。 **Velocity** Velocity是Apache软件基金会的一个项目,它...
3. **内置函数和指令**:掌握Freemarker提供的各种内置函数,如`?html`用于转义HTML字符,`<#assign>`用于声明和赋值变量。 4. **数据模型**:理解如何创建和组织数据模型,将Java对象映射到模板变量。 5. **模板...
6. **内置函数和方法**:FreeMarker提供了一些内置的函数,如`?html`用于转义HTML实体,`?length`用于获取集合的长度。此外,还可以在模板中调用对象的方法,如`${list.sort()}`。 7. **模板继承与导入**:...
5. **日期和数字格式化**:FreeMarker 提供了内置的方法来格式化日期和数字,如 `${date?string("yyyy-MM-dd")}` 可以将日期对象转换为指定格式的字符串。 6. **宏**:宏是可重用的模板片段,类似于函数。通过`...
2.3.23的手册则可能增加了新版本的更新日志、新特性的介绍和使用方法,以及可能的API变更。 学习FreeMarker的关键在于理解其模板语法和如何与后端代码交互。通过阅读手册,开发者可以掌握如何编写模板,如何将Java...
- **内建函数参考文档**:提供了FreeMarker内置函数的详尽列表和使用说明。 - **指令参考文档**:列举了FreeMarker的所有指令及其语法说明。 以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅...
8. **内置函数和方法**:Freemarker内置了如`default`、`escape`、`size`等函数,以及对象的`?`操作,如`?exists`、`?non_null`等。 9. **错误和异常处理**:通过`<#try>`、`<#catch>`进行错误捕获和处理,确保模板...