FreeMarker整理

字符串
html 安全输出HTML
xml 安全输出xml
cap_first 首字符大写
uncap_first 首字符小写
capitalize 每个单词的首字符大写
lower_case 小写输出字符
upper_case 大写输出字符
trim 去掉字符串前后空格
length 取得字符串长度
${str[index]} charAt(index)
${str[first..last]} substring(first,last)
split("str") 以str分隔字符串,返回seq
word_list 分隔单词,相当于split(" ")
index_of("str") indexOf(str)
index_of("str",index) indexOf(str,index)
last_index_of("str") lastIndexOf(str)
last_index_of("str",index) lastIndexOf(str,index)
j_string 在引号前加"\",可能在代码生成的时候使用
replace("old","new") replaceAll
replace("old","new","规则") replaceAll,规则参数包含: i r m s c f :i: 大小写不区分/f: 只替换第一个/r: new是正则表达式




数字
int:取得数字的整数部分(如-1.9?int的结果是-1)
string.number
string.currency
string.percent
#{expr; format}形式可以用来格式化数字,format可以是:
mX:小数部分最小X位
MX:小数部分最大X位



布尔
string("yes", "no")



时间
string("yyyy-MM-dd HH:mm:ss")
date 日期
time 时间
datetime 日期+时间



==或= 比较是否相等
<#t> 去掉左右空白和回车换行
<#lt>去掉左边空白和回车换行
<#rt>去掉右边空白和回车换行
<#nt>取消上面的效果
default("default word") 如果变量为null或不存在,就输出默认值
exists 如果为null或不存在则返回true
if_exists 如果存在且不为null则输出,否则不输出
has_content 如果存在,不为null,有内容则返回true(字符串为"" 或列表size=0都表示内容为空)
${r"${foo}"}${r"C:\foo\bar"} 被认为是纯文本,其中的\和{等不具有特殊含义,该类字符串在引号前面加r



 
sequences
初始化:
1. [“you”,”me”,”he”]
2. 1..100
3. [ {“Akey”:”Avalue”},{“Akey1”:”Avalue1”},{“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”}]
first 返回第一个值;前提条件sequence不能是null
last 返回sequence最后一个值
reverse 反转sequence的值
size 返回sequence的大小
sort 按里面的对象toString()的结果进行排序
sort_by(value) 按里面的对象的属性value进行排序



hashes
初始化:{“you”:”a”,”me”:”b”,”he”:”c”}
keys 返回hash里的所有keys, 返回结果类型sequence
values 返回hash里的所有value, 返回结果类型sequence




web中常用的几个对象
Freemarker的ftl文件中直接使用内部对象:
${Request ["a"]}
${RequestParameters["a"]}
${Session ["a"]}
${Application ["a"]}
以上的内部对象在struts2中如果result的type=freemarker,那么RequestParameters将不会存在
type=freemarker时将会有以下对象:
action 代表当前处理请求的action对象
ognl org.apache.struts2.views.jsp.ui.OgnlTool
struts org.apache.struts2.util.StrutsUtil, 可用${struts.context}得到当前contextpath
stack com.opensymphony.xwork2.util.OgnlValueStack
attr attrorg.apache.struts2.util.AttributeMap 可得到各个作用域的属性值
application 可得到application范围内的属性值
request org.apache.struts2.dispatcher.StrutsRequestWrapper 得不到request范围内的属性值




在模板里ftl里使用标签
<#assign bean=JspTaglibs["/WEB-INF/struts-bean.tld"]>
<@bean.message key="welcome.title"/>



配置web.xml
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>com.opensymphony.webwork.views.freemarker.FreemarkerServlet</servlet-class>
<init-param>
<param-name>TemplatePath</param-name>
<param-value>/</param-value>
<!—模板载入文件夹,这里相对context root,递归获取该文件夹下的所有模板-->
</init-param>
<init-param>
<param-name>NoCache</param-name> <!—是否对模板缓存-->
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>ContentType</param-name>
<param-value>text/html</param-value>
</init-param>
<init-param>
<param-name>template_update_delay</param-name>
<!—模板更新时间,0表示每次都更新,这个适合开发时候-->
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>default_encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>number_format</param-name>
<param-value>0.##########</param-value><!—数字显示格式-->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>



FreeMarker Tag

is_collection, keys, interpret, is_macro, matches, sort, html, time, index_of, values, right_pad, xml, date, web_safe, eval, is_transform, string,
node_namespace, float, size, cap_first, number, namespace, seq_last_index_of, j_string, seq_index_of, first, new, default, split, sort_by, upper_case,
is_number, last_index_of, long, last, is_directive, starts_with, capitalize, datetime, is_boolean, short, is_hash_ex, ends_with, is_enumerable, chunk,
is_date, byte, trim, is_node, c, exists, chop_linebreak, double, is_indexable, is_string, ancestors, url, replace, uncap_first, is_hash, seq_contains,
is_sequence, contains, substring, left_pad, if_exists, length, has_content, int, is_method, rtf, reverse, groups, lower_case, node_type, js_string, word_list,
root, parent, node_name, children
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值