您的位置:首页 > Web前端 > JavaScript

FreeMarker学习指南媲美JSP的优秀可视化技术

2017-08-13 22:23 441 查看
先放入结构图:



FreeMarker学习
模板:
模板支持的数据类型:
标量:字符串,数字,布尔值,日期
容器:哈希表,序列
子程序:方法和函数,用户自定义指令

变量声明:
使用指令赋值:assign
简单变量,局部变量,循环变量,检索变量

模板支持的运算符:
算术运算符
比较运算符
逻辑运算符
空值处理运算符

插值:
用来给插入具体的值然后转换为文本
使用位置:
文本区:${name}
插值表达式的结果必须是字符串,数字,日期

条件指令:
<#if test></#if>
<#if test>
<#elseif></#elseif>
<#else></#else>
</#if>

<#switch value>
<#case value1>
<#break>
<#case value2>
<#break>

循环指令:
<#list uses as user>
</#list>

包含指令:
<#include path>
</#include>

其他指令:
1.onparse:不对之间的指令做任何解释原木原样的输出
2.compress:压缩文本中的空格等
3.setting:设置freemarker相关的设置

自定义指令:
目的:
可以将模板中重复的东西复用
定义:
使用macro指令定义或者使用java实现
参数的声明:直接跟在指令名后面,可以指定默认值
嵌套内容:使用nested指令
调用:
可以使用<@指令>来调用自定义指令
实例:
<#macro mydirec1>
这是自定义指令
</#macro>

<@mydirec1/>

空值的处理:
!或者??做判断
!用于${()!}
??用于<#if s ??></#if>

命名空间:
在编写可复用库时候可以避免命名冲突
使用import导入命名空间

函数:
字符串函数:
substring
cap_first
uncap_first
capitalize
ends_with
start_with
index_of
last_index_of
length
left_pad
right_pad
contains
replace
split
trim
word_list
数字函数:
c
string
round
floor
ceiling
日期函数:
str
4000
ing
date
time
datetime
布尔函数:
string
序列函数:
first
last
seq_contains
seq_index_of
seq_last_index_of
reverse
size
sort
sort_by
chunk
哈希函数:
keys
自定义函数:
<#function fucName param>

数据模型:
数据类型:
int,boolean,string,set,list,array
加载模板:
加载不同位置的模板
异常处理:
异常类型:
配置异常
IO异常
加载异常
解析异常
处理模板异常
处理:
可以自定异常处理保证模板出错但是不会终止模板执行
其他配置:
配置信息分层:
Configuration
Template
Environment
优先级从小到大,范围从大到小
缓存技术:
configuration.setCacheStorage(new freemarker.cache.MruCacheStorage(20,250));
XML处理:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: