一.工程结构
二.代码
1.TemplateStringDemo.java
package com.bijian.study; import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Properties; import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import freemarker.template.Configuration; import freemarker.template.Template; public class TemplateStringDemo { public static void main(String[] args) throws Exception { //---------------------FreeMarker配置 --------------------------- FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer(); //file:D:\SoftWare\workspace\FreeMarkerDemo String templateLoaderPath = "file:" + new File("").getAbsolutePath(); freeMarkerConfigurer.setTemplateLoaderPath(templateLoaderPath); Properties settings = new Properties(); settings.setProperty("template_update_delay", "0"); settings.setProperty("default_encoding", "UTF-8"); settings.setProperty("locale", "zh_CN"); settings.setProperty("classic_compatible", "true"); freeMarkerConfigurer.setFreemarkerSettings(settings); Configuration configuration = freeMarkerConfigurer.createConfiguration(); Template template = configuration.getTemplate("freeMarkerStringDemo.ftl"); //---------------------FreeMarker配置--------------------------- //==========================范例 start================================== Map<String, Object> parameters = new HashMap<String, Object>(); /* * 1.substring(start,end)从一个字符串中截取子串 * start:截取子串开始的索引,start必须大于等于0,小于等于end * end: 截取子串的长度,end必须大于等于0,小于等于字符串长度,如果省略该参数,默认为字符串长度。 */ parameters.put("str", "str"); /* * 2.cap_first 将字符串中的第一个单词的首字母变为大写 */ parameters.put("capfirst", "capfirst"); /* * 3.uncap_first将字符串中的第一个单词的首字母变为小写 */ parameters.put("Uncapfirst", "Uncapfirst"); /* * 4.capitalize将字符串中的所有单词的首字母变为大写 */ parameters.put("capitalize", "welcome to shengzhen"); //==========================范例 end================================== //-----------------------根据模板和参数生成字符串---------------------------- String ftl = FreeMarkerTemplateUtils.processTemplateIntoString(template, parameters); System.out.println(ftl); } }
2.freeMarkerStringDemo.ftl
<#-- ==================FreeMarker模板生成的内容 START===================== --> 范例一:substring(start,end)从一个字符串中截取子串 ${r"${'"}${str}${r"'?substring(0)}"}的结果为:${str?substring(0)} ${r"${'"}${str}${r"'?substring(1)}"}的结果为:${str?substring(1)} ${r"${'"}${str}${r"'?substring(2)}"}的结果为:${str?substring(2)} ${r"${'"}${str}${r"'?substring(3)}"}的结果为:${str?substring(3)} ${r"${'"}${str}${r"'?substring(0,0)}"}的结果为:${str?substring(0,0)} ${r"${'"}${str}${r"'?substring(0,1)}"}的结果为:${str?substring(0,1)} ${r"${'"}${str}${r"'?substring(0,2)}"}的结果为:${str?substring(0,2)} ${r"${'"}${str}${r"'?substring(0,3)}"}的结果为:${str?substring(0,3)} 范例二:cap_first将字符串中的第一个单词的首字母变为大写 ${r"${'"}${capfirst}${r"'?cap_first}"}的结果为:${capfirst?cap_first} 范例三:uncap_first将字符串中的第一个单词的首字母变为小写 ${r"${'"}${Uncapfirst}${r"'?cap_first}"}的结果为:${Uncapfirst?cap_first} 范例四:capitalize将字符串中的所有单词的首字母变为大写 ${r"${'"}${capitalize}${r"'?capitalize}"}的结果为:${capitalize?capitalize} 范例五:date,time,datetime将字符串转换为日期,注意:如果指定的字符串格式不正确将引发错误 <#assign date1="2009-10-12"?date("yyyy-MM-dd")> ${date1} <#assign date2="9:28:20"?time("HH:mm:ss")> ${date2} <#assign date3="2009-10-12 9:28:20"?datetime("yyyy-MM-dd HH:mm:ss")> ${date3} 范例六:ends_with 判断某个字符串是否由某个子串结尾,返回布尔值,注意:布尔值必须转换为字符串才能输出 ${r'${"string"?ends_with("ing")?string}'}的结果为:${"string"?ends_with("ing")?string} ${r"${'string'?ends_with('ing')?string}"}的结果为:${'string'?ends_with('ing')?string} 范例七:html用于将字符串中的<、>、&和"替换为对应得<>":& ${r"${'a>b b<c c&d "}${'"'}${r"是双引号'?html}"}的结果为:${'a>b b<c c&d "是双引号'?html} 范例八:index_of(substring,start)在字符串中查找某个子串,返回找到子串的第一个字符的索引,如果没有找到子串,则返回-1 Start参数用于指定从字符串的那个索引处开始搜索,start为数字值。 如果start大于字符串长度,则start取值等于字符串长度,如果start小于0, 则start取值为0。 ${r'${"string"?index_of("in")}'}的结果为:${"string"?index_of("in")} ${r'${"string"?index_of("ab")}'}的结果为:${"string"?index_of("ab")} 范例九:length返回字符串的长度 ${r'${"string"?length}'}的结果为:${"string"?length} 范例十:lower_case将字符串转为小写 ${r'${"STRING"?lower_case}'}的结果为:${"STRING"?lower_case} 范例十一:upper_case将字符串转为大写 ${r'${"string"?upper_case}'}的结果为:${"string"?upper_case} 范例十二:contains判断字符中是否包含某个子串,返回布尔值。注意:布尔值必须转换为字符串才能输出 ${r'${"string"?contains("ing")?string}'}的结果为:${"string"?contains("ing")?string} 范例十三:number将字符串转换为数字 ${r'${"111.11"?number}'}的结果为:${"111.11"?number} 范例十四:replace用于将字符串中的一部分从左到右替换为另外的字符串。 ${r'${"strabg"?replace("ab","in")}'}的结果为:${"strabg"?replace("ab","in")} 范例十五:split使用指定的分隔符将一个字符串拆分为一组字符串 <#list "This|is|split"?split("|") as s> ${s} </#list> 范例十六:trim删除字符串首尾空格 ${r'${" String "?trim}'}的结果为:${" String "?trim} <#-- ==================FreeMarker模板生成的内容 END===================== -->
三.运行结果
范例一:substring(start,end)从一个字符串中截取子串 ${'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 范例二:cap_first将字符串中的第一个单词的首字母变为大写 ${'capfirst'?cap_first}的结果为:Capfirst 范例三:uncap_first将字符串中的第一个单词的首字母变为小写 ${'Uncapfirst'?cap_first}的结果为:Uncapfirst 范例四:capitalize将字符串中的所有单词的首字母变为大写 ${'welcome to shengzhen'?capitalize}的结果为:Welcome To Shengzhen 范例五:date,time,datetime将字符串转换为日期,注意:如果指定的字符串格式不正确将引发错误 2009-10-12 9:28:20 2009-10-12 9:28:20 范例六:ends_with 判断某个字符串是否由某个子串结尾,返回布尔值,注意:布尔值必须转换为字符串才能输出 ${"string"?ends_with("ing")?string}的结果为:true ${'string'?ends_with('ing')?string}的结果为:true 范例七:html用于将字符串中的<、>、&和"替换为对应得<>":& ${'a>b b<c c&d "是双引号'?html}的结果为:a>b b<c c&d "是双引号 范例八:index_of(substring,start)在字符串中查找某个子串,返回找到子串的第一个字符的索引,如果没有找到子串,则返回-1 Start参数用于指定从字符串的那个索引处开始搜索,start为数字值。 如果start大于字符串长度,则start取值等于字符串长度,如果start小于0, 则start取值为0。 ${"string"?index_of("in")}的结果为:3 ${"string"?index_of("ab")}的结果为:-1 范例九:length返回字符串的长度 ${"string"?length}的结果为:6 范例十:lower_case将字符串转为小写 ${"STRING"?lower_case}的结果为:string 范例十一:upper_case将字符串转为大写 ${"string"?upper_case}的结果为:STRING 范例十二:contains判断字符中是否包含某个子串,返回布尔值。注意:布尔值必须转换为字符串才能输出 ${"string"?contains("ing")?string}的结果为:true 范例十三:number将字符串转换为数字 ${"111.11"?number}的结果为:111.11 范例十四:replace用于将字符串中的一部分从左到右替换为另外的字符串。 ${"strabg"?replace("ab","in")}的结果为:string 范例十五:split使用指定的分隔符将一个字符串拆分为一组字符串 This is split 范例十六:trim删除字符串首尾空格 ${" String "?trim}的结果为:String
学习文章地址:http://www.blogjava.net/alinglau36/archive/2011/02/23/344970.html
相关推荐
根据提供的文件信息,我们可以深入探讨Freemarker中的内置函数,主要关注数字、字符串以及日期的格式化处理。Freemarker是一种强大的模板引擎,被广泛应用于Web开发和其他领域中,用于生成动态HTML页面或其他类型的...
Freemarker 提供了一些操作字符串的内置函数,用于操作字符串对象。 1. `substring(start,end)`:从一个字符串中截取子串。 2. `cap_first`:将字符串中的第一个单词的首字母变为大写。 3. `uncap_first`:将字符串...
FreeMarker提供了文本处理功能,如字符串拼接、格式化输出: - `${'Hello, ' + user.name}`:拼接字符串。 - `${value?string('yyyy-MM-dd')}`:格式化日期。 ### 7. 自定义指令和宏 FreeMarker允许你创建自定义...
- 字符串连接:使用`~`符号连接字符串。 - 数学运算:支持加减乘除、取余、指数等运算。 - 逻辑运算:`&&`(与)、`||`(或)、`!`(非)。 - 集合操作:遍历列表、索引访问、过滤等。 6. **模板设计模式** - ...
在FreeMarker中,内置函数提供了一套便捷的工具,帮助我们在模板中执行各种操作,例如字符串处理、日期时间格式化等。 1. **字符串操作函数** - `join`: 将数组或列表中的元素连接成一个字符串,通常用于生成CSV...
- **字符串**: 由单引号或双引号括起来的文本。 - **数字**: 直接使用数值。 - **日期**: 通常从数据模型中获取。 - **布尔值**: `true` 或 `false`,常用于 `<#if...>` 结构中。 **2. Hashes(哈希表)** - ...
除了基本的字符串输出,Freemarker还支持更复杂的字符串操作,如字符串拼接。 - **字符串拼接示例**: - 拼接字符串:`${"hello," + username + "!"}`。 - 使用变量拼接字符串:`${"hello,${username}"}`。 这些...
以下是对Freemarker中Sequence、Hash以及字符串操作函数的详细说明。 一、Sequence的内置函数: 1. `sequence?first`:返回Sequence的第一个元素,如果Sequence为空,返回null。 2. `sequence?last`:返回Sequence...
这篇博客“JSP中截取在线编辑器的字符串的处理”就讨论了如何在JSP中对在线编辑器生成的内容进行字符串截取。 在线编辑器生成的HTML代码通常包含各种标签和样式,如果直接进行简单的字符串截取,可能会导致截取结果...
5. SpringMVC控制器接收到请求后,将数据模型(包括Base64字符串)传递给Freemarker模板。 6. Freemarker根据模板和数据模型生成最终的Word文档。 7. 将生成的Word文档返回给客户端下载或在线预览。 这个项目的实现...
4. **函数和方法**:Freemarker支持自定义函数和方法,可以使用内置的函数库,如字符串操作、数学计算等,也可以扩展自定义函数来满足特定需求。 5. **模板继承和导入**:通过`<#import>`和`<#extends>`,模板可以...
Freemarker提供了丰富的内置函数,可以帮助开发者在模板中进行各种操作,如字符串处理、数值运算等。 ##### 字符串操作 ```plaintext 假设 user 的值为 "john.doe" --> ${user?upper_case} // JOHN.DOE ${user?...
### 三、操作字符串函数 1. `substring(start, end)`:从字符串中截取子串,`start` 是起始索引,`end` 是结束索引。 2. `cap_first`:将字符串的第一个字符转为大写。 3. `uncap_first`:将字符串的第一个字符转为...
replace`进行字符串替换,`?upper_case`和`?lower_case`进行大小写转换。此外,还有算术操作符(+、-、*、/、%)、比较操作符(==、!=、<、>、、>=)和逻辑操作符(&&、||、!)。 6. **模板配置** 通过`freemarker...
1. **substring**: 自2.3.7版本起,FreeMarker支持类似Java中的`substring`方法,用于提取字符串的一部分。例如,`"${"abcd"?substring(1,3)}"`的结果为`bc`。该方法在不同平台上表现一致,不会受到编码或编辑器的...
在Java编程中,字符串模板是一种常见的技术,它允许我们在字符串中使用特定的占位符(如`${name}`),...在学习和实践中,理解正则表达式在字符串操作中的应用是非常重要的,因为它在许多编程任务中都扮演着关键角色。
字符串处理是FreeMarker中的一个重要方面,可以进行字符串的拼接、截取、替换等操作。例如: ```ftl ${str?upper_case} <!-- 输出 "HELLO WORLD" --> ${str?replace("o", "0")} <!-- 输出 "Hell0 W0rld" --> ``` ...