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

猜你喜欢

转载自zxb1985.iteye.com/blog/1810184
今日推荐