freemarker 数字,字符的操作

1. 数据类型转换:

Javascript代码  

  1. ${xx?string} //字符串
  2. ${xx?number}//整数
  3. ${xx?currency}//小数
  4. ${xx?percent}//百分比

2. 截取字符串长度 
有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的列子就可以自定义显示的长度 
< lt. <= lte. > gt. >= gte

Javascript代码  

  1. <#if jstbqkVO.gzdd?length lt 8>
  2. <a href>${jstbqkVO.gzdd?default("")}</a>
  3. <#else>
  4. <a href title="${jstbqkVO.gzdd}">${jstbqkVO.gzdd[0..3]?default("")}</a>
  5. </#if>

意思就是如果这个字符串的长度小于8,那么就正常显示,反之则取4位

3.数字转字符型,数字的格式化

Javascript代码  

  1. <#list 1990...2020 as a>
  2. ${a}
  3. </#list>

这样会遇到一个问题,当数据超过3位的时候,freemarker会自动用逗号截取 格式如:2,008 
如何解决呢? 
1> 加.toString(),如:${(userId).toString()} 
2> 加?c,如:${(userId)?c} 
3> freemarker配置文件freemarker.properties加上number_format=#

4. 字符去空格

Javascript代码  

  1. ${xx?trim}

5. 格式化日期

Javascript代码  

    1. ${date?string("yyyy-MM-dd HH:mm:ss ")}
    2. ${date?string("yyyyMMdd ")}
时间: 2024-10-08 17:24:29

freemarker 数字,字符的操作的相关文章

Freemarker数字转时间

使用freemarker模板,展示一个时间字段,数据库保存的是毫秒.在网上找了许多文章,发现都是针对date或者是直接类似"1999-09-09"这样已经成型字符串进行操作的,心中不禁万马奔腾.本来已经放弃准备自己调js脚本解决了,不过随手试了一下,结果发现了一个方法:number_to_date,试了一下可用,心中不由感慨intelliJ的强大索引功能.大概这个函数是高版本freemarder新增的功能,所以老文章里都没有提到. 除了number_to_date还有number_to

java的IO操作:字节流与字符流操作

流的概念 程序中的输入输出都是以流形式,流中保存的实际上都是字节文件. 字节流与字符流 字节流的操作: 1)输入:inputStream, 2)输出:outPutStream; 字符流的操作: 1)输入主要使用:write类. 2)输出主要使用:reader类. 内容操作就四个类. 操作流程: 使用File类操作一定有路径问题,注意分隔符: 实际上四个操作类都是抽象类(区别接口,抽象类的成员都是抽象,并且只能单继承,接口可以有全局变量,但是接口可以多继承) IO操作属于资源操作,对于资源操作,操

php url字符转义操作

遇到一段代码,从数据库里读出来带 \ 字符 需要转义成中文~ 用到url_decode(); 1 //$info 为刚从数据库中读取的二维数组 2 3 foreach($info as $key1 => &$value1) { 4 foreach($key1 as $key2 => &$value2) { 5 if($key2 == 'url转义字段' ) //判断是否是要转义的字段 6 { 7 $value = url_decode(str_replace('\\','%',

Java加密解密与数字证书的操作

1 keytool命令总结 一.创建数字证书 交互模式 使用默认的密钥库.keystore(文件夹是c: Documents and Settingusername)和算法(DSA) keytool -genkey 默认的别名mykey 密钥库中能够存放多个条目(公钥/私钥对和证书),它们在密钥库中以别名(alias)区分. [plain] view plaincopy keytool -genkey -alias mytest -keyalg RSA -keysize 1024 -keysto

Linux设备驱动第七篇:高级字符驱动操作之阻塞IO

我们之前介绍过简单的read,write操作,那么会有一个问题:当驱动无法立即响应请求该怎么办?比如一个进程调用read读取数据,当没有数据可读时该怎么办,是立即返回还是等到有数据的时候:另一种情况是进程调用write向设备写数据,如果缓冲区满了或者设备正忙的时候怎么办,是立即返回还是继续等待直到设备可写?这种情况下,一般的缺省做法是使进程睡眠直到请求可以满足为止.本篇就介绍遇到这类问题驱动的处理方法. 睡眠 什么是睡眠?一个进程睡眠意味着它暂时放弃了CPU的运行权,直到某个条件发生后才可再次被

详解 字符内存操作流

目录 字符内存操作流 CharArrayWrite类: CharArrayReader类: StringWriter类: StringReader类: (请观看本人博文--<详解 内存操作流>) @ 字符内存操作流 字符内存操作流 按照功能分 ,共分为 两种: 分类: 操作字符数组 CharArrayWrite CharArrayReader 操作字符串 StringWriter StringReader 那么,本人现在就对这两种字符内存操作流进行下讲解: 首先是 操作字符数粗的 CharAr

freemarker数字格式化带来的操作问题

freemarker在解析数据格式的时候,自动默认将数字按3为分割(1,000),这个问题给操作带来一定的额外处理复杂度,解决方法有如下几种: 1.在模板中直接加.toString()转化数字为字符串,如: ${languageList.id.toString()}: 2.在freemarker配置文件freemarker.properties加 <#setting number_format="#">或者 <#setting number_format="

Linux设备驱动第六篇:高级字符驱动操作之iotcl

在之前我们介绍了怎样实现一个简单的字符设备驱动.并介绍了简单的open,close,read,write等驱动提供的基本功能.可是一个真正的设备驱动往往提供了比简单读写更高级的功能. 这一篇我们就来介绍一些驱动动中使用的一些高级的操作的实现. 大部分驱动除了提供对设备的读写操作外,还须要提供对硬件控制的接口,比方查询一个framebuffer设备能提供多大的分辨率,读取一个RTC设备的时间,设置一个gpio的高低电平等等.而这些对硬件操作能力的实现一般都是通过ioctl方法来实现的 1. 原型介

Python_python字符类型操作及文件操作

# 数组操作stus = ['xiaohong','xiaobai','xiaohei']  #中括号定义,下标从0开始,最后往前从-1开始stus.append('xiaozhang')                   #List增加元素,默认增加在最后stus.insert(1,'xiaoming')                  #指定位置增加元素,下标不存在默认增加在最后print(stus[1])                              #中括号下标获取对于L