操作字符串函数

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

基本参数:

  • date: 只显示日期,不显示时间.
    ${createTime?date} 或${createTime?date('yyyy-MM-dd')}
  • time: 只显示时间,不显示日期
    ${createTime?time} 或${createTime?time('hh:mm:ss')}
  • datetime: 时间和日期同时显示
    ${createTime} 或${createTime?datetime('yyyy-MM-dd hh:mm:ss')}${createTime?string('yyyy-MM-dd hh:mm:ss')}

Freemarker预置了一些日期格式

${createTime?string.short}  01:45 PM
${createTime?string.medium} 01:45:09 PM
${createTime?string.long} 01:45:09 PM PST
${createTime?string.full} 01:45:09 PM PST
${createTime?string.xs} 13:45:09-08:00
${createTime?string.iso} 13:45:09-08:00

字符串类型:

日期格式:${book.date?string('yyyy-MM-dd')}

${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 用于将字符串中的<、>、&和“替换为对应得&lt;&gt;&quot:&amp

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

freemarker 简单操作的更多相关文章

  1. 【学习笔记】初识FreeMarker简单使用

    楔子: 之前在和同事讨论,同事说“jsp技术太古老了,有几种页面技术代替,比如FreeMarker.Velocity.thymeleaf,jsp快废弃了……”云云.我这一听有点心虚……我在后端部分越刨 ...

  2. x01.MagicCube: 简单操作

    看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...

  3. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  4. GitHub学习心得之 简单操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...

  5. Linq对XML的简单操作

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

  6. Linux 中 Vi 编辑器的简单操作

    Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi  filename //打开或新 ...

  7. python(pymysql)之mysql简单操作

    一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...

  8. ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作

    问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...

  9. ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作

    1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其 ...

随机推荐

  1. Tomcat配置(部分知识点)

    1.<Server>元素,shutdown属性表示关闭Server的指令:port属性表示Server接收shutdown指令的端口号,设为-1可以禁掉该端口 2.Connector的主要 ...

  2. Python:Day06 元组、字典、字符串

    tuple(元组) 元组被称为只读列表,即数据可以被查询,但不能被修改,所以列表的切片操作同样适用于元组. 元组写在( )里,元素之间用逗号隔开. tul1 = ( ) #空元组 tul2 = (20 ...

  3. 5、原生jdbc链接数据库实例-自动取款机

    ATM自动取款机需求 一.登陆 1.界面要求:服务选择 1.老用户登陆:进入后输入卡号密码登陆 2.新用户开户:开户需要输入身份证号,记录姓名,开户时间.然后机器给出卡号,原始密码:111111. 卡 ...

  4. (三)JavaScript 语法

    字符串(String)字面量 可以使用单引号或双引号: "John Doe" 'John Doe' 数组(Array)字面量 定义一个数组: [40, 100, 1, 5, 25, ...

  5. appium遇到click事件,提示"w3cStatus":400

    1.小米手机被开发借用后归还,使用该手机再进行自动化,发现appium遇到click事件,返回400 2.当时未想到是要在手机侧进行开发者选项-调试权限的设置 3.一直以为是appium的问题,app ...

  6. 深入理解 Servelt

    1.什么是 Servlet ? Servlet(Server Applet)是 Java Servlet 的简称,称为小服务程序或服务连接器,用 Java 编写的服务器端程序,具有独立于平台和协议的特 ...

  7. Vue2.x源码学习笔记-Vue静态方法和静态属性整理

    Vue静态方法和静态属性,其实直接在浏览器中可以查看到的,如下 圈起来的是其静态属性,但是有的属性对象中的属性的值又是函数.未圈起来的则是函数. 其实它来自如下各个目录下的js文件 // src/co ...

  8. 444 D. Ratings and Reality Shows

    一个模特有两种活动. ① 拍照片,挣钱 a. ②开演唱会,花费b 给定模特这两种工作的时间表. 模特可以选定一个时间举办一个座谈会,那么他拍照片的钱变c.开演唱会会花费d. 要求在模特座谈会之前和后l ...

  9. Luogu P3321 [SDOI2015]序列统计

    一道不错的多项式好题.还涉及了一些数论内容. 首先我们看到题目是求乘积模\(m\)的方案数,考虑到这种方案数我们一般都可以用生成函数来做. 但显然卷积的下标有加(FFT,NTT等)有位运算(FWT)但 ...

  10. Java多线程学习(二)---线程创建方式

    线程创建方式 摘要: 1. 通过继承Thread类来创建并启动多线程的方式 2. 通过实现Runnable接口来创建并启动线程的方式 3. 通过实现Callable接口来创建并启动线程的方式 4. 总 ...