- 浏览: 3362250 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
freeMarker语法 http://uule.iteye.com/blog/879566
Freemarker页面语法 http://jiangsha.iteye.com/blog/372307
算术运算符
FreeMarker表达式中完全支持算术运算,FreeMarker支持的算术运算符包括:+, - , * , / , % 看如下的代码:
<#assign x=5>
${ x * x - 100 }
${ x /2 }
${ 12 %10 }
输出结果是:
-75 2.5 2
在表达式中使用算术运算符时要注意以下几点:
1,运算符两边的运算数字必须是数字
2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35
使用内建的int函数可对数值取整,如:
<#assign x=5>
${ (x/2)?int }
${ 1.1?int }
${ 1.999?int }
${ -1.1?int }
${ -1.999?int }
结果是:2 1 1 -1 -1
比较运算符
表达式中支持的比较运算符有如下几个:
1,=或者==:判断两个值是否相等.
2,!=:判断两个值是否不等.
3,>或者gt:判断左边值是否大于右边值
4,>=或者gte:判断左边值是否大于等于右边值
5,<或者lt:判断左边值是否小于右边值
6,<=或者lte:判断左边值是否小于等于右边值
注意:=和!=可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比较,"x","x ","X"是不等的.其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:<#if (x>y)>
逻辑运算符
逻辑运算符有如下几个:
逻辑与:&&
逻辑或:||
逻辑非:!
逻辑运算符只能作用于布尔值,否则将产生错误
内建函数
FreeMarker还提供了一些内建函数来转换输出,可以在任何变量后紧跟?,?后紧跟内建函数,就可以通过内建函数来轮换输出变量.下面是常用的内建的字符串函数:
html:对字符串进行HTML编码
cap_first:使字符串第一个字母大写
lower_case:将字符串转换成小写
upper_case:将字符串转换成大写
trim:去掉字符串前后的空白字符
下面是集合的常用内建函数
size:获取序列中元素的个数
下面是数字值的常用内建函数
int:取得数字的整数部分,结果带符号
例如:
<#assign test="Tom & Jerry">
${test?html}
${test?upper_case?html}
结果是:Tom & Jerry TOM & JERRY
空值处理运算符
FreeMarker对空值的处理非常严格,FreeMarker的变量必须有值,没有被赋值的变量就会抛出异常,因为FreeMarker未赋值的变量强制出错可以杜绝很多潜在的错误,如缺失潜在的变量命名,或者其他变量错误.这里所说的空值,实际上也包括那些并不存在的变量,对于一个Java的null值而言,我们认为这个变量是存在的,只是它的值为null,但对于FreeMarker模板而言,它无法理解null值,null值和不存在的变量完全相同.
为了处理缺失变量,FreeMarker提供了两个运算符:
!:指定缺失变量的默认值
??:判断某个变量是否存在
其中,!运算符的用法有如下两种:
variable!或variable!defaultValue,第一种用法不给缺失的变量指定默认值,表明默认值是空字符串,长度为0的集合,或者长度为0的Map对象.
使用!指定默认值时,并不要求默认值的类型和变量类型相同.使用??运算符非常简单,它总是返回一个布尔值,用法为:variable??,如果该变量存在,返回true,否则返回false
比较大小和逻辑运算
<#assign x = 4>
<#if (x>5)>
x >5
</#if>
<#if gridParam.dataRows?? && (gridParam.dataRows?size>0)>
表格记录数大于0
</#if>
以index为循环
<#list 1..gridParam.rows as idx>
${idx}
</#list>
定义变量和计算
<#assign allTotal=0>
<#assign allTotal=allTotal+detail.realSum>
获得list的长度
myList?size
货币,百分比格式化
三种数字格式: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%
数字格式化, 详细看原文
http://www.netingcn.com/freemarker-number-format.html
${num?string('0.00')}
如果小数点后不足两位,用 0 代替
${num?string('#.##')}
如果小数点后多余两位,就只保留两位,否则输出实际值
输出为:1239765.46
freemarker格式化日期 http://ljhzzyx.blog.163.com/blog/static/383803122013214102540434/
${dateVar?string("yyyy-MM-dd HH:mm:ss zzzz")}
循环读取
<#list sequence as item>
...
</#list>
空值判断<#if bookList?size = 0></#list>
freemarker如何直接调用java类的某个方法
http://bbs.csdn.net/topics/260029531
将你写的类当成对象假如到MAP中
然后在再用map?key的方法获得该类
FREEMARKER
freemarker判断是否为空
http://www.oschina.net/code/snippet_54124_15295
<#if s?exists> exists用在逻辑判断
${s?if_exists} 用来打印东西时用到,如果存在打印,不存在打印空字符串.
exp1?exists将会被exp1??代替
exp1?if_exists将会被exp1!代替
exp1?default(exp2)将会被exp1!exp2.
Freemarker页面语法 http://jiangsha.iteye.com/blog/372307
算术运算符
FreeMarker表达式中完全支持算术运算,FreeMarker支持的算术运算符包括:+, - , * , / , % 看如下的代码:
<#assign x=5>
${ x * x - 100 }
${ x /2 }
${ 12 %10 }
输出结果是:
-75 2.5 2
在表达式中使用算术运算符时要注意以下几点:
1,运算符两边的运算数字必须是数字
2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35
使用内建的int函数可对数值取整,如:
<#assign x=5>
${ (x/2)?int }
${ 1.1?int }
${ 1.999?int }
${ -1.1?int }
${ -1.999?int }
结果是:2 1 1 -1 -1
比较运算符
表达式中支持的比较运算符有如下几个:
1,=或者==:判断两个值是否相等.
2,!=:判断两个值是否不等.
3,>或者gt:判断左边值是否大于右边值
4,>=或者gte:判断左边值是否大于等于右边值
5,<或者lt:判断左边值是否小于右边值
6,<=或者lte:判断左边值是否小于等于右边值
注意:=和!=可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比较,"x","x ","X"是不等的.其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:<#if (x>y)>
逻辑运算符
逻辑运算符有如下几个:
逻辑与:&&
逻辑或:||
逻辑非:!
逻辑运算符只能作用于布尔值,否则将产生错误
内建函数
FreeMarker还提供了一些内建函数来转换输出,可以在任何变量后紧跟?,?后紧跟内建函数,就可以通过内建函数来轮换输出变量.下面是常用的内建的字符串函数:
html:对字符串进行HTML编码
cap_first:使字符串第一个字母大写
lower_case:将字符串转换成小写
upper_case:将字符串转换成大写
trim:去掉字符串前后的空白字符
下面是集合的常用内建函数
size:获取序列中元素的个数
下面是数字值的常用内建函数
int:取得数字的整数部分,结果带符号
例如:
<#assign test="Tom & Jerry">
${test?html}
${test?upper_case?html}
结果是:Tom & Jerry TOM & JERRY
空值处理运算符
FreeMarker对空值的处理非常严格,FreeMarker的变量必须有值,没有被赋值的变量就会抛出异常,因为FreeMarker未赋值的变量强制出错可以杜绝很多潜在的错误,如缺失潜在的变量命名,或者其他变量错误.这里所说的空值,实际上也包括那些并不存在的变量,对于一个Java的null值而言,我们认为这个变量是存在的,只是它的值为null,但对于FreeMarker模板而言,它无法理解null值,null值和不存在的变量完全相同.
为了处理缺失变量,FreeMarker提供了两个运算符:
!:指定缺失变量的默认值
??:判断某个变量是否存在
其中,!运算符的用法有如下两种:
variable!或variable!defaultValue,第一种用法不给缺失的变量指定默认值,表明默认值是空字符串,长度为0的集合,或者长度为0的Map对象.
使用!指定默认值时,并不要求默认值的类型和变量类型相同.使用??运算符非常简单,它总是返回一个布尔值,用法为:variable??,如果该变量存在,返回true,否则返回false
比较大小和逻辑运算
<#assign x = 4>
<#if (x>5)>
x >5
</#if>
<#if gridParam.dataRows?? && (gridParam.dataRows?size>0)>
表格记录数大于0
</#if>
以index为循环
<#list 1..gridParam.rows as idx>
${idx}
</#list>
定义变量和计算
<#assign allTotal=0>
<#assign allTotal=allTotal+detail.realSum>
获得list的长度
myList?size
货币,百分比格式化
三种数字格式: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%
数字格式化, 详细看原文
http://www.netingcn.com/freemarker-number-format.html
${num?string('0.00')}
如果小数点后不足两位,用 0 代替
${num?string('#.##')}
如果小数点后多余两位,就只保留两位,否则输出实际值
输出为:1239765.46
freemarker格式化日期 http://ljhzzyx.blog.163.com/blog/static/383803122013214102540434/
${dateVar?string("yyyy-MM-dd HH:mm:ss zzzz")}
循环读取
<#list sequence as item>
...
</#list>
空值判断<#if bookList?size = 0></#list>
freemarker如何直接调用java类的某个方法
http://bbs.csdn.net/topics/260029531
将你写的类当成对象假如到MAP中
然后在再用map?key的方法获得该类
maplist.put("typeTool",this);
FREEMARKER
<#assign name=typeTool.getTypeName(key)>${name}
freemarker判断是否为空
http://www.oschina.net/code/snippet_54124_15295
<!--1\---> <!--判断aaa是否不为空,eclipse插件老报错。---> <#if aaa??> ${aaa} </#if> <!--2\ <#if aaa?if_exists> aaa不存在! </#if> <!--3\---> <#if aaa?exists> aaa存在,值为${aaa} </#if>
<#if s?exists> exists用在逻辑判断
${s?if_exists} 用来打印东西时用到,如果存在打印,不存在打印空字符串.
exp1?exists将会被exp1??代替
exp1?if_exists将会被exp1!代替
exp1?default(exp2)将会被exp1!exp2.
发表评论
-
分布式存储系统GlusterFS安装配置
2016-06-27 14:51 992http://navyaijm.blog.51cto.com/ ... -
分布式查询 presto 入门安装使用
2016-06-24 15:44 2466http://my.oschina.net/chengxiao ... -
跟我学习dubbo
2016-06-17 15:20 1031跟我学习dubbo-目录 http://bluereader. ... -
JavaMelody监控web服务器
2016-06-17 14:20 1144JavaMelody监控web服务器 http://my.os ... -
freemarker判断是否为空
2016-06-08 16:03 2http://www.oschina.net/code/sni ... -
ehcache 分布式支持
2016-06-05 22:26 1056原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2839原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1494http://my.oschina.net/wjme/blog ... -
分布式任务调度组件 Uncode-Schedule
2016-05-13 14:47 2238http://www.oschina.net/p/uncode ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3387http://www.guokr.com/blog/47576 ... -
Fedora安装Redis
2016-05-04 08:56 1377管理工具: centos6.3下安装phpredisadmin ... -
redis-install.sh
2016-05-04 08:56 4#!/bin/bash # From here: http: ... -
redis 集群中Session解决方案之Spring Session
2016-05-04 08:54 1269集群中Session解决方案之Spring Session h ... -
使用Spring-data进行Redis操作
2016-05-04 08:54 4731使用Spring-data进行Redis操作 http://z ... -
Shiro集群实现
2016-05-04 08:53 2260apache shiro集群实现(一) session共享 h ... -
spring 注解方式下使用commons-validator 验证表单
2016-05-03 11:08 3033原文: http://www.programgo.com/ar ... -
Apache Lucene 5.x版本 示例
2016-04-28 15:46 1097http://blog.csdn.net/isea533/ar ... -
Hessian 二进制RPC协议整合到SpringMVC
2016-04-27 09:47 1703SpringMVC集成Hessianhttp://blog.c ... -
shiro过滤器过滤属性含义
2016-04-21 13:51 1273http://my.oschina.net/cng1985/b ... -
Hadoop 2.6.4分布式集群环境搭建
2016-04-13 11:45 709http://my.oschina.net/jackieyea ...
相关推荐
利用FreeMarker生成word文件例子
freemarker-2.3.19.jar 以及包含的所有依赖的等
spring mvc freemarker 自定义标签demo spring mvc 通过自定义的标签在jsp页面调用,初学,记录下做个备忘
SpringBoot_Freemarker生成Word_多个表格+两层嵌套循环; 步骤说明: 1.用Microsoft Office Word打开word原件;将文档中需要动态生成的内容,替换为属性名 ${name} 2.另存为,选择保存类型Word 2003 XML 文档(*....
在学习freemarker时候,个人记录的笔记。用于常见标签的使用语法,以及嵌套标签的使用等。同时针对spring boot 编写了一套代码生成器。直接运行即可使用。具体地址:...
初学者绝佳入门实例,展现web开发最主流框架:struts+hibernate+spring,使用前沿技术freemarker实现模板重用,使用FckEditor提供和word媲美的在线文本编辑功能。
人事管理系统是一款基于SpringBoot框架和Freemarker模板引擎构建的企业级应用解决方案。该系统旨在简化和自动化企业中的人力资源管理流程,提高工作效率,确保信息的准确性和安全性。 系统核心功能包括员工信息管理...
说明:参考了公司的一些项目以及springside,...2.记录job执行历史以及异常。 3.记录schedule操作历史以及异常。 分享给大家,欢迎提出批评和建议。 有些注释没有加上,有任何问题都可以email: wfeiyangvip@163.com。
普通用户:注册登录、个人信息管理(个人资料、密码修改等)、留言管理、竞价管理、竞拍收藏、订单查询(物流信息查询)、银行卡管理、提现管理等、竞拍物品展示查询(列表搜索、详情展示、报名记录、竞价记录)。...
6.1使用log4j记录日志 9 6.2使用AOP统一处理Web请求日志 9 七、 缓存支持 9 7.1注解配置与EhCache使用 9 使用Redis做集中式缓存 9 八、 其他内容 9 8.1、使用@Scheduled创建定时任务 9 8.2、使用@Async实现...
系统主要以Java语言作为开发基础,使用了Freemarker+SpringBoot等技术,采用Idea作为开发工具,以MySql作为数据库工具。本系统只有后台管理模块,后台管理模块实现用户管理、人员管理、地址管理、核酸检测记录等功能...
入门级功能:包括属性(配置),JDBC模板(数据库CRUD),JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板解析),freemarker (模板解析)...
6.1使用log4j记录日志 30 6.2使用AOP统一处理Web请求日志 32 6.3Spring Boot集成lombok让代码更简洁 33 七、 缓存支持 35 7.1注解配置与EhCache使用 35 7.2使用Redis集成缓存 37 八、 热部署 37 8.1 什么是热...
系统主要以Java语言作为开发基础,使用了Freemarker+SpringBoot等技术,采用Idea作为开发工具,以MySql作为数据库工具。本系统只有后台管理模块,后台管理模块实现用户管理、人员管理、地址管理、核酸检测记录等功能...
系统主要以Java语言作为开发基础,使用了Freemarker+SpringBoot等技术,采用Idea作为开发工具,以MySql作为数据库工具。本系统只有后台管理模块,后台管理模块实现用户管理、人员管理、地址管理、核酸检测记录等功能...
第五步:使用freemarker的API语法实现输出word文件 spring-boot-learn-jsp spring boot集成JSP 集成JSP 第一步:添加依赖 <!-- spring boot web --> <groupId>org.springframework.boot <artifactId>spring-...
本用例是一个后台的全功能实现,包括以下功能: 1、基础权限管理实现2、基础菜单管理实现3、菜单、权限、账号联动实现4、基础代码可编辑5、自动记录日志6、简化增删改功能7、简单Demo参考综合来说,用本项目代码进行...
本系统是一个基于的Android手机聊天系统,支持群聊与点对点聊天。当前包括Android客户端与Java服务器端...* 页面模板使用Freemarker:轻量级的 Java 页面模板引擎。 * 打包时集成为一个整体 jar 包(包含所有的依赖包)
chapter3-1-3:使用Freemarker模板引擎渲染web视图 chapter3-1-4:使用Velocity模板引擎渲染web视图 chapter3-1-5:使用Swagger2构建RESTful API chapter3-1-6:统一异常处理 chapter3-1-7:使用Java 8中LocalDate等...
Jakarta的通用日志记录包 4.ognl-3.0.3.jar 支持ognl表达式 5.xwork-core-2.3.1.1.jar xwork的包 由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类 6.commons-fileupload-1.2.2.jar struts的上传下载