一.工程结构
二.代码
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