操作字符串函数

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. tensorflow中的batch_normalization实现

    tensorflow中实现batch_normalization的函数主要有两个: 1)tf.nn.moments 2)tf.nn.batch_normalization tf.nn.moments主 ...

  2. Leetcode:003 无重复字符串

    Leetcode:003 无重复字符串 关键点:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度.示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复 ...

  3. Python:Day48 Jquery

    引用方式: <script src="jquery-3.3.1.js"></script> jQuery就是一个jQuery对象,可以简写成$ 基本语法:$ ...

  4. 错误Matplotlib is building the font cache using fc-list. This may take a moment.

    这上面的错误是因为你环境中没有安装GUI工具,但是你在代码中又想要显示图片,即有下面的语句: plt.imshow(np.transpose(npimg, (, , ))) plt.show() 那么 ...

  5. django一般架构思维导图

    本例已django项目名称为myblog,其下面有2个应用blog和comment介绍:

  6. 4939-Agent2-洛谷

    传送门 emm... 这次没有原题了 (因为我懒) 就是一道很简单的树状数组 真的很简单很简单 只用到了一点点的差分 注意注意: 只用树状数组,不用差分会t掉的 所以.. 我不仅t了 还wa了 emm ...

  7. 理解 vue-router的beforeEach无限循环的问题

    在理解beforeEach无限循环之前,我们先来看一下beforeEach相关的知识点,该篇文章的项目是基于 express+vue+mongodb+session实现注册登录 这篇文章项目基础之上进 ...

  8. DOM(一)

    DOM可以将任何HMLT或XML文档描绘成一个由多层节点构成的结构,节点氛围几种不同的类型,每种类型分别表示文档中不同的信息及标记,每个节点都拥有各自的特点.数据和方法. Node类型 DOM1级定义 ...

  9. JS prototype 生成机制

    默认的 prototype 属性是 Object() 对象,只不过每种类型或者自定义类型锁挂载的对象属性不同. 事实上,prototype 的生成是这样的: const Func = function ...

  10. 阿里云 Windows Server 2012 r2 部署asp.net mvc网站 平坑之旅

    做了多年的Web开发工作,网站部署也不在话下,可每次部署却并不是十分顺利,将本次在阿里云服务器上部署asp.net mvc网站遇到的问题记录如下. 平台是阿里云ECS,操作系统是 Windows Se ...