专栏首页凯哥Javafreemark学习(一):hello freemark

freemark学习(一):hello freemark

一:

freemark百科:

FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据。

二:开发准备

2.1:使用到的jar包

2.2:开发步骤:

1):创建配置对象实例

2):给对象实例设置模板位置

3):准备数据

4):加载模板文件

5):显示生成的文件

三:code编写

创建普通的java项目。不是web项目。结构如下:

结构说明:

|--Demo1.java是java类

|--referencedLibrar是引入的jar包

|--templates是存放模板d位置

|--a.tfl是模板文件

Demo1.java如下:

package com.kaigejava.freemark;

import java.io.File;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.util.HashMap;

import java.util.Map;

import freemarker.template.Configuration;

import freemarker.template.Template;

publicclass Demo1 {

publicstaticvoid main(String[] args) throws Exception {

//创建配置实例

Configuration cfg = new Configuration();

//设置模板目录

cfg.setDirectoryForTemplateLoading(new File("templates"));

//创建数据模型

Map<String,Object> root = new HashMap<String, Object>();

root.put("name", "hello freemarker");

//加载模板文件

Template template = cfg.getTemplate("a.ftl");

//显示生成d数据,并将数据打印到控制台上

Writer out = new OutputStreamWriter(System.out);

template.process(root, out);

out.flush();

out.close();

}

}

a.ftl如下:

运行结果如下:

至此第一个freemark项目已创建成功.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java进阶之路——从初级程序员到架构师,从小工到专家

    怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之...

    凯哥Java
  • Java 下载zip文件

    List attachFileList = bookService.findAttachFileList(ids);

    凯哥Java
  • 使用idea实现springboot Mybatis 整合(springboot 2.x)

    本来这篇博文老在就写好了,但是后来发现很多功能其实根本就没有检验通过就发出来了,导致遗留了很多坑,比如最难搞的就是SqlSessionFactory和PageH...

    凯哥Java
  • 结合JSFL/actionscript 实现轮廓动画

    用户1258909
  • Android内存泄漏分享

    内容概述 内存泄漏和内存管理相关基础。 Android中的内存使用。 内存分析工具和实践。 以下内容不考虑非引用类型的数据,或者将其等同为对应的引用类型看待——...

    用户1172465
  • HttpClient在多线程环境下踩坑总结

    在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状态。 而且,...

    2Simple
  • 面试被问:运行一个HelloWorld程序JVM都经历了什么

    注:如果无法通过符号引用验证,那么将会抛出一个java.lang.IncompatibleClassChangeError异常的子类:java.lang.Ill...

    用户4143945
  • Caused by: java.net.ConnectException: Connection refused/Caused by: java.lang.RuntimeException: com.

    别先生
  • 2017年Java面试题整理

    面试是我们每个人都要经历的事情,大部分人且不止一次,这里给大家总结最新的2017年面试题,让大家在找工作时候能够事半功倍。

    Java团长
  • Java初中级面试题(2)

    芋道源码

扫码关注云+社区

领取腾讯云代金券