`
yimeng528
  • 浏览: 188785 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    freemarker基本语法整理

    Freemarker 基本语法整理 作为一款流行的模板引擎,Freemarker 在 Struts2 框架中扮演着重要的角色。本文将对 Freemarker 的基本语法进行整理,涵盖输出、逻辑判断、循环遍历、宏等方面的知识点。 输出 在 ...

    FreeMarker的基础知识整理

    FreeMarker还支持条件语句(`&lt;#if&gt;`、`&lt;#else&gt;`、`&lt;#elseif&gt;`)、循环(`&lt;#foreach&gt;`、`&lt;#list&gt;`)、宏定义和调用等高级功能,以及自定义函数和模板继承,这些使得它能够处理复杂的逻辑和布局。 总的来说,...

    eclipse的freemarker插件

    1. **代码格式化**:允许用户自定义代码格式化规则,如缩进方式(空格或制表符)、缩进宽度、换行处理等,自动整理Freemarker模板代码,使其符合编码规范。 2. **语法高亮**:提供Freemarker关键词和语法的色彩突出...

    FreeMarker学习资料整理

    下面,我们将深入探讨FreeMarker的基础知识、应用场景以及如何进行学习。 1. **基础概念** - **模板**:FreeMarker的核心是模板,它是由开发者编写的HTML或XML文件,其中嵌入了特定的FreeMarker语法,用于动态生成...

    FreeMarker设计指南(完整整理)

    FreeMarker设计指南(完整整理)是我们学习的好帮手!

    freemarker语法 亲自收集整理

    以下是对 Freemarker 语法的详细解释: 1. **指令:** - **if, else, elseif**:用于条件判断。`&lt;#if condition&gt;`检查条件,如果为真则执行相应代码,`&lt;#elseif condition2&gt;`用于添加额外的条件分支,`&lt;#else&gt;`则...

    freemarker及jeecms标签使用学习文档

    - `JEECMS模板置标使用手册(重新整理版).docx`:详细介绍了Jeecms模板标签的使用方法和技巧,对于Jeecms开发者来说是宝贵的参考资料。 通过这些文档的学习,你将能够熟练地运用Freemarker来编写模板,以及在Jeecms...

    FreeMarker语法参考

    本文档基于官方资料,对FreeMarker的常用语法进行了翻译和整理,旨在帮助开发者快速掌握并应用到项目中。 #### 二、字符串处理 1. **substring**: 自2.3.7版本起,FreeMarker支持类似Java中的`substring`方法,...

    java+freemarker实现对word的操作myeclipse工程源码整理

    Java与Freemarker结合使用,可以实现对Word文档的强大操作,尤其在动态生成或修改Word内容方面具有显著优势。在Java编程中,我们通常利用Apache POI库来处理Microsoft Office格式的文件,包括Word(.doc和.docx)。...

    freemarker_jar包及文档

    4. **FreeMarker中文版文档.pdf**:这份文档可能是对Freemarker更全面的中文解释,包括了官方文档的翻译以及其他社区整理的资料。它可能涵盖了更多实际应用场景,比如与其他框架的集成、性能优化、错误排查等,对于...

    eclipse freemarker 插件

    4. **格式化**:插件提供了代码格式化功能,可以根据设定的规则对模板进行整理,保持代码的整洁和规范。 5. **模板调试**:支持Freemarker模板的调试,可以通过设置断点、查看变量值等方式来排查问题,提升调试体验...

    Myeclipse在线和离线安装Freemarker编辑器

    4. **模板格式化**:一键整理代码格式,保持代码整洁。 5. **错误检查**:实时检查模板语法错误,快速定位并修复问题。 6. **模板预览**:提供预览功能,可以在不运行项目的情况下查看模板渲染后的效果。 7. **宏...

    利用Freemarker模板生成doc或者docx文档(转载整理)-附件资源

    利用Freemarker模板生成doc或者docx文档(转载整理)-附件资源

    freemarker简介_动力节点Java学院整理

    为了使用FreeMarker,你需要在项目中引入FreeMarker库(如freemarker-2.3.20.jar),并在Web应用中创建一个`templates`文件夹存放模板文件。例如,创建一个名为`test.ftl`的模板文件,包含HTML内容和变量标记。然后...

    freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总.rar

    本资源“freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总.rar”显然是一个集合了多种功能的压缩包,旨在帮助开发者高效地使用Freemarker来处理复杂的Word文档生成任务,并且包含了将Word...

    freemarker基础总结

    都是自己总结还有在网上查的资料的,整理了一下,对于初学者还是很有帮助的,都是些基础性的东西,希望对大家有帮助!

    freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总rengm.zip

    本资料包“freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总rengm.zip”提供了关于如何使用Freemarker处理动态图片并转换Word为PDF的详细工具和教程。 首先,我们关注“doc_docx”部分。...

Global site tag (gtag.js) - Google Analytics