[Freemarker] 初识FreeMarker
来源:互联网 发布:嵌入式软件开发技术 编辑:程序博客网 时间:2024/06/07 03:05
内容
笔者学习网上SpringMVC Demo时接触到.flt,这是笔者初步了解后的笔记
学习路线:
1) 博客:http://blog.csdn.net/fhx007/article/details/7902040/
2) 慕课网:http://www.imooc.com/learn/801
简介
Freemarker不算Web框架,是基于Java编写的模板引擎,是视图的一个组件,便于编程人员更好的在View层(MVC模型)显示后端数据
.flt(Freemarker Template Language)是Freemarker模板的文件后缀名
Freemarker官网:http://freemarker.org
简单语法
${varName}
取值插入${name}
取变量name的值插入该位置(通过ModelAndView传值)!
取空值或变量不存在问题${varName!}
变量为空或不存在则不输出任何东西${varName!'我是默认值'}
空或不存在输出 我是默认值?
后接函数等操作${date?string("yyyy-MM-dd")}
对date变量转换格式后输出<#assign a=100 />
定义变量<@... >
@表示自定义指令<#-- -->
注释文本
直接输出
具体用法
取值
逻辑变量
${booleanVar}
直接输出页面报错
原因:页面中不能输出逻辑变量值true,false
解决方案:
1) freemarker配置文件中设置格式化标签<prop key="boolean_format">yes,no</prop>
2) 使用时转格式
${booleanVar?string('yes','no')}
取日期
Freemarker中只与Java.sql.Date类型的日期做映射,无法输出Java.util.Date类型的日期<#-- Java.util.Date类型需转义 -->${dateVar?string('yyyy-MM-dd HH:mm:ss')}<#-- Java.sql.Date类型直接用 -->${dateVar}
取到空值 或 变量不存在
${nullVar}
取到空值页面报错${missing}
missing没有定义(不存在)${var!} <#-- null或mssing则不输出任何东西 -->${var!'默认值'} <#-- null或mssing输出 默认值-->
输出HTML代码${var?html}
${"<font color='blue'>我是html代码</font>"?html}
页面显示为:
<font color='blue'>我是html代码</font>
遍历List
userList为通过ModelAndView传过来的java对象 List<User> userList<ul> <#list userList as item> <li>${item.name},的年龄是:${item.age}</li> </#list></ul>
异常处理:
${ userObj.name !} <#-- 只能判断name是否异常 -->${ (userObj.name)! } <#-- 判断userObj是否异常-->
遍历Map
<ul> <li>集合Map</li> <#list map?key as key> <font color="blue">${key}:${map[key]}</font><br/> </#list> </ul>
逻辑语句
If语句
<#if var >99> var 大于 00 <#elseif var==99> var 等于 00 <#else> var 小于 00 </#if> <#-- 其他判断形式 --> <#if myList??> ?是否存在或为空值 <#if myList?exists> 是否存在
Switch语句
<#switch var> <#case 10> 10<br/> <#break> <#case 100> 100</br> <#default> other</#switch>
对字符串操作
连接 ${a+b} 截取 ${ (a+b)?substring(5,8) } 只取头,不取尾 长度 ${ (a+b)?length } 大写 ${ (a+b)?upper_case } 小写 ${ (a+b)?lower_case } 首次出现位置 ${ (a+b)?index_of(‘w’) } 替换 ${ (a+b)?replace(‘w’,’s’) } 最后一次出现的位置 ${ (a+b)?last_index_of(‘o’) }
阅读全文
0 0
- [Freemarker] 初识FreeMarker
- 初识FreeMarker
- 初识freemarker
- freemarker初识
- 初识freemarker
- 初识FreeMarker
- freemarker
- freemarker
- FreeMarker
- FreeMarker
- freemarker
- freemarker
- freemarker
- Freemarker
- freemarker
- freemarker
- FreeMarker
- freeMarker
- hibernate创建数据库
- HTML的基础框架
- Socket框架
- Cannot read property 'glob' of null
- Linux SD/MMC/SDIO驱动分析
- [Freemarker] 初识FreeMarker
- Linux设备模型(总线、设备、驱动程序和类)
- HDU5701(技巧暴力)
- Mybatis的动态sql----where,trim,set,foreach
- UVa101(模拟+基础数据结构vector)
- eclipse Alt+/提示老弹错误框
- java中完成九九乘法表
- Eclipse使用技巧
- MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!