通过FreeMarker的Java api生成网页模板

本文介绍了如何通过FreeMarker的Java API来生成网页模板。步骤包括配置FreeMarker、创建数据模型、加载模板、合并数据并最终生成字符串内容。提供了一个FreeMarkerUtil类示例,用于根据模板和数据生成字符串格式的模板结果,并展示了测试过程及成功案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘自freemarker官网,增加了自己的注释和改动,简单复制和翻译了官网的代码注释,后面有自己根据需要简单改动过的代码。
官网链接为freemarker官网quick start页

第一步,创建freemarker配置,应用的生命周期中只要配置一次;

// 创建配置,有特殊需求要指定版本,细节查看java文档
Configuration cfg = new Configuration(Configuration.VERSION_2_3_27);

// 指定模板文件地址
cfg.setDirectoryForTemplateLoading(new File("/where/you/store/templates"));

// 指定文字编码
cfg.setDefaultEncoding("UTF-8");

// 错误说明的设置,在网页上则 *development* TemplateExceptionHandler.HTML_DEBUG_HANDLER更好
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

// 不要设置freemarker内部Log,有错误总会看到的
cfg.setLogTemplateExceptions(false);

//将不在范围内的exception指定给TemplateException处理
cfg.setWrapUncheckedExceptions(true);

第二步,创建数据模型;

// 一般数据模型是map格式,也可以是JavaBean
Map<String
FreeMarker官方参考文档总共有四份,它们分别是  Designer's Guide(网上已有翻译,主要从FreeMarker 的概念上介绍)  Programmer's Guide(本文档所以翻译的部分,主要从框架的设计方面介绍)  XML Processing Guide(对XML数据模型处理的介绍)  Reference(FreeMarker 的参考文档,语言使用介绍) 中文翻译之所以选择 Programmer's Guide 是因为个人觉得该部分对如何实现 FreeMarker 进行了比较深入的阐述。有助于读者很好的了解其运作机制,以及去理解其他 模板引擎(如Velocity)的工作机理。 注:由于原文档部分内容直译可能难于被读者理解,所以有些地方采用意译为主,因此在翻译用词上 难 免 可 能 会 有 出 入 , 大 家 对 翻 译 的 内 容 有 任 何 意 见 都 可 以 给 我 直 接 发 邮 件 告 知 motomagice@yahoo.com.cn 目录 前言.........................................................................3 一、快速入门..............................................................4 1.1、创建配置实例..............................................................................4 1.2、创建数据模型(Data Model) ..........................................................4 1.3、获取模版(template..................................................................5 1.4、把模版与数据模型合并...................................................................6 1.5、完整的代码 ................................................................................6 二、数据模型(Data Model) ..........................................7 2.1、基础类型...................................................................................7 2.2、Scalar类型(单值对应的Data Model)...............................................8 2.3、容器类型...................................................................................8 2.4、方法变量...................................................................................9 2.5、转换器变量 .............................................................................. 10 2.6、节点变量................................................................................. 12 2.7、对象包裹................................................................................. 12 三、配置(Configuration)........................................... 15 3.1、基础....................................................................................... 15 3.2、共享变量................................................................................. 15 3.3、配置参数................................................................................. 16 3.4、加载模板................................................................................. 17 3.5、异常处理................................................................................. 19 四、其它说明............................................................ 20 4.1、变量....................................................................................... 20 4.2、字符编码................................................................................. 20 4.3、多线程.................................................................................... 21 4.5、Bean 包裹................................................................................ 21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值