Freemarker操作字符串

一.工程结构

Freemarker操作字符串_第1张图片

二.代码

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用于将字符串中的<、>、&和"替换为对应得&lt;&gt;&quot:&amp
	${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用于将字符串中的<、>、&和"替换为对应得&lt;&gt;&quot:&amp
	${'a>b b<c c&d "是双引号'?html}的结果为:a&gt;b b&lt;c c&amp;d &quot;是双引号

范例八: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)