字符串
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 在 Struts2 框架中扮演着重要的角色。本文将对 Freemarker 的基本语法进行整理,涵盖输出、逻辑判断、循环遍历、宏等方面的知识点。 输出 在 ...
FreeMarker还支持条件语句(`<#if>`、`<#else>`、`<#elseif>`)、循环(`<#foreach>`、`<#list>`)、宏定义和调用等高级功能,以及自定义函数和模板继承,这些使得它能够处理复杂的逻辑和布局。 总的来说,...
1. **代码格式化**:允许用户自定义代码格式化规则,如缩进方式(空格或制表符)、缩进宽度、换行处理等,自动整理Freemarker模板代码,使其符合编码规范。 2. **语法高亮**:提供Freemarker关键词和语法的色彩突出...
下面,我们将深入探讨FreeMarker的基础知识、应用场景以及如何进行学习。 1. **基础概念** - **模板**:FreeMarker的核心是模板,它是由开发者编写的HTML或XML文件,其中嵌入了特定的FreeMarker语法,用于动态生成...
FreeMarker设计指南(完整整理)是我们学习的好帮手!
以下是对 Freemarker 语法的详细解释: 1. **指令:** - **if, else, elseif**:用于条件判断。`<#if condition>`检查条件,如果为真则执行相应代码,`<#elseif condition2>`用于添加额外的条件分支,`<#else>`则...
- `JEECMS模板置标使用手册(重新整理版).docx`:详细介绍了Jeecms模板标签的使用方法和技巧,对于Jeecms开发者来说是宝贵的参考资料。 通过这些文档的学习,你将能够熟练地运用Freemarker来编写模板,以及在Jeecms...
本文档基于官方资料,对FreeMarker的常用语法进行了翻译和整理,旨在帮助开发者快速掌握并应用到项目中。 #### 二、字符串处理 1. **substring**: 自2.3.7版本起,FreeMarker支持类似Java中的`substring`方法,...
Java与Freemarker结合使用,可以实现对Word文档的强大操作,尤其在动态生成或修改Word内容方面具有显著优势。在Java编程中,我们通常利用Apache POI库来处理Microsoft Office格式的文件,包括Word(.doc和.docx)。...
4. **FreeMarker中文版文档.pdf**:这份文档可能是对Freemarker更全面的中文解释,包括了官方文档的翻译以及其他社区整理的资料。它可能涵盖了更多实际应用场景,比如与其他框架的集成、性能优化、错误排查等,对于...
4. **格式化**:插件提供了代码格式化功能,可以根据设定的规则对模板进行整理,保持代码的整洁和规范。 5. **模板调试**:支持Freemarker模板的调试,可以通过设置断点、查看变量值等方式来排查问题,提升调试体验...
4. **模板格式化**:一键整理代码格式,保持代码整洁。 5. **错误检查**:实时检查模板语法错误,快速定位并修复问题。 6. **模板预览**:提供预览功能,可以在不运行项目的情况下查看模板渲染后的效果。 7. **宏...
利用Freemarker模板生成doc或者docx文档(转载整理)-附件资源
为了使用FreeMarker,你需要在项目中引入FreeMarker库(如freemarker-2.3.20.jar),并在Web应用中创建一个`templates`文件夹存放模板文件。例如,创建一个名为`test.ftl`的模板文件,包含HTML内容和变量标记。然后...
本资源“freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总.rar”显然是一个集合了多种功能的压缩包,旨在帮助开发者高效地使用Freemarker来处理复杂的Word文档生成任务,并且包含了将Word...
都是自己总结还有在网上查的资料的,整理了一下,对于初学者还是很有帮助的,都是些基础性的东西,希望对大家有帮助!
本资料包“freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总rengm.zip”提供了关于如何使用Freemarker处理动态图片并转换Word为PDF的详细工具和教程。 首先,我们关注“doc_docx”部分。...