??是判断对象是否为空,例如:<#if object??>object对象不为空(即object存在)#if>
?后面要加关键字,例如:<#if object?exists>object对象不为空#if>
<#if str??>${str?string}#if><#--将str以字符串形式显示-->
${nowDate?time}<#--将现有时间以时间的格式显示,显示结果如:15:13:05-->
${nowDate?date}<#--以日期格式显示,如:2011-4-28-->(date的格式可以在freemarker.properties文件中配置)
……还有很多
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据。
在所有采用网页静态化手段的网站中,FreeMarker使用的比例大大的超过了其他的一些技术。HTML静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以使用FreeMarker将HTML静态化。比如一些网站的公用设置信息,这些信息基本都是可以通过后台来管理并存储在数据库中,这些信息其实会大量的被前台程序调用,每一次调用都会去查询一次数据库,但是这些信息的更新频率又会很小,因此也可以考虑将这部分内容进行后台更新的时候进行静态化,这样就避免了大量的数据库访问请求,从而也就提高了网站的性能。
与JSP相比,FreeMarker的一个优点在于不能轻易突破模板语言开始编写Java代码,因此降低了领域逻辑漏进视图层的危险几率。但缺点是需要一点附加配置来将其平稳地集成到应用程序中,一些IDE(集成开发环境)可能并不完全支持它,当然还有开发者或设计者也许需要学习一门陌生的模板语言。相关的JAR文件将要添加到WEB-INF/lib(在需要的时候,它们包含在Spring中)。
freemaker中在变量名后面放置?来询问Freemarker这个变量是否存在,你这句话的意思就是,如果变量xxxxx存在并且xxxxx.xxxxx存在的话.
??是判断对象是否为空,例如:<#if object??>object对象不为空(即object存在)#if>
?后面要加关键字,调用内建函数,例如:<#if object?exists>object对象不为空#if>
是说编程吗? 如果是 一般? 都是为了传参