freemarker 模板引擎

模板引擎:根据模板与绑定的数据,生成最终的xml文本。

java领域的表现层的三大模板引擎——jsp,velocity,freemarker。jsp,java server page。

官网:http://freemarker.org/

1.依赖

<dependency>
	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
	<version>2.3.23</version>
</dependency>

2.模板组成部分

文本:直接输出的部分

注释:<#-- content -->

数据模型:${data.field}

3.相关类

freemarker.template.Configuration
配置类。
freemarker.template.Configuration.Configuration(Version incompatibleImprovements)
构造函数。
void freemarker.template.Configuration.setDirectoryForTemplateLoading(File dir)
设置存放模板文件(若干个 xx.ftl)的目录。
void freemarker.template.Configuration.setDefaultEncoding(String encoding)
设置编码格式。
Template freemarker.template.Configuration.getTemplate(String name)
根据文件名拿到template。
void freemarker.template.Template.process(Object dataModel, Writer out)
有了模板与数据,得到输出,写入out中。若想得到字符串,一般会传入StringWriter。

4.常用指令

list

for循环遍历的效果。
<#list fruits as fruit><br>
   <li>${fruit.name}<br>
</#list>

if

条件判断。为真时,标签对内的内容才会输出。
<#--标签内的属性,不能用${}的形式-->
<#if isBig && isExpensive>Wow!</#if>
<#-- 使用关系比较符时,可以直接用大于号,但要放在括号内,保证标签闭合符号能被正确处理-->
<#if (x>y)>x is larger than y</#if>
<#-- 使用关系比较符时,也可以用-->
<#if (x  gt y)>x is larger than y</#if>

??

判断某个变量是否存在

var?length

取得字符串长度

var?c

将数字转为字符串

assign

引入局部变量并赋值

5.例子

6.常见错误

当用到了${object.x},但datamodel中没有这个属性,就会报下面这样的错误。

Error executing FreeMarker template
FreeMarker template error:
The following has evaluated to null or missing:

解决办法:使用<#if obj.x??>做判断。

时间: 2024-11-10 07:54:54

freemarker 模板引擎的相关文章

Java操作FreeMarker模板引擎的基本用法示例小结_Android

FreeMarker 是一个采用 Java 开发的模版引擎,是一个基于模版生成文本的通用工具. 它被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序.虽然使用FreeMarker需要具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由 FreeMarker 生成页面,并通过模板显示准备的数据. http://freemarker.org/ public void process(String template, Map<String, ?> data) th

Android freemarker模板引擎应用

什么是freemarker? 在说这个之前我们都知道web和原生控件之争就那么点事.性能,加载速度,流量,数据交互-. 如果我用webView加载一个url页面,要先通过网络解析css,解析html代码,然后渲染生成页面 什么是freemarker?简单点就是,事先把上面这个html文件,放到应用中,用的时候只要传入数据就行 freemarker优点和应用 节约流量,加快网页加载速度 比如某些图表功能,用js库实现比较方便,只要事先放入html模板,传入数据就行.大大节省了流量及加载速度 或者事

Java操作FreeMarker模板引擎的基本用法示例小结

FreeMarker 是一个采用 Java 开发的模版引擎,是一个基于模版生成文本的通用工具. 它被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序.虽然使用FreeMarker需要具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由 FreeMarker 生成页面,并通过模板显示准备的数据. http://freemarker.org/ public void process(String template, Map<String, ?> data) th

FreeMarker 2.3.19发布 模板引擎

FreeMarker 是一个模板引擎,最初的设计是基于servlet应用程序从程序逻辑分开保留的http://www.aliyun.com/zixun/aggregation/12288.html">图形设计.该模板提供了一个简单而高度灵活的方式来生成数据源的各种文本输出,输出的格式包括:HTML.PostScript.TeX.source code, 等. FreeMarker 2.3.19该版本包含两个重要的安全解决办法,包含了一些新的功能和错误修正. 软件信息:http://free

JavaWeb实现导出Word文档到本地(使用FreeMarker模版引擎实现)

http://freemarker.org/ Freemarker官网,英文,可以用谷歌浏览器的自动翻译,英文水平高的忽略这句.. 简单来说:FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写.FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序. 这里使用freemarker生成Word文档,非常方便. 惯例,先看看Demo整体结构: Demo结构: 这里要引入freemarker包,通过Freemarker加载word文

TinyTemplate模板引擎火热出炉,正式开源了~~~

序言 本来是没有自己写一个模板引擎的计划的,因为按我的理解,一直认为这种"语言"级的引擎,难度是非常大的.总感觉自己的水平不够,因此不敢有这个念头.直到大量使用Velocty的时候,碰到velocty诸多不尽如人意的地方,但是又无能为力,退回到JSP吧,又心不有甘.于是就期望着寻找一种语法结构接近velocty,但是又没有Velocity这些不方便之处的模板语言.于是进到一个模板语言群,一群大佬们个个至少是一个模板语言的作者,于是作者在里面表达了自己的期望,大佬们都介绍了自己的模板引擎

velocity 模板引擎

freemarker等的同类产品,可脱离web环境使用. 在web项目中与springMVC搭配,可参考<spring mvc中的视图框架> 它是一个apache的项目,地址为:http://velocity.apache.org/engine/1.7/user-guide.html 1.依赖 <!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity --> <dependency> <

详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】_javascript技巧

目录 一.AJAX示例 1.1.优点 1.2.缺点 1.3.jQuery AJAX示例 二.延迟对象(Deferred) 2.1.回调函数 2.2.deferred.done 三.跨域 3.1.什么是跨域 3.2.JSONP跨域 3.3.jQuery使用JSONP跨域 3.4.跨域资源共享(CORS) 3.5.小结 四.弹出层 五.模板引擎 5.1.Hello World 5.2.方法 5.3.与AJAX结合应用 六.示例下载 一.AJAX示例 AJAX全称为"Asynchronous Java

详解Javascript模板引擎mustache.js_javascript技巧

本文总结它的使用方法和一些使用心得,内容不算很高深,纯粹是入门内容,看看即可.不过要是你还没有用过此类的javascript引擎库,那么本文还是值得你一读的,相信在你了解完它强大的功能和简单用法之后,一定会迫不及待地将之用于你的工作当中. 1. 从一个简单真实的需求讲起目前公司做了一个统一的开发平台,后台封装了MVC的接口和数据增删改查的接口,前端我自己用bootstrap+手写各类组件的方式弄了一套开发框架:集成了CAS,在CAS的基础上,首先做了一套统一权限管理系统,这个系统是我们开发平台的