`
m17056762031
  • 浏览: 22475 次
文章分类
社区版块
存档分类
最新评论

java Freemarker 模版引擎工具类

 
阅读更多
package org.fh.util;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.Locale;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

/**
 * 说明:Freemarker 模版引擎类
 * 作者:FH Admin
 * from:fhadmin.cn
 */
public class Freemarker {

	/**
	 * 打印到控制台(测试用)
	 *  @param ftlName
	 */
	public static void print(String ftlName, Map<String,Object> root, String ftlPath) throws Exception{
		try {
			Template temp = getTemplate(ftlName, ftlPath);		//通过Template可以将模板文件输出到相应的流
			temp.process(root, new PrintWriter(System.out));
		} catch (TemplateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 输出到输出到文件
	 * @param ftlName   ftl文件名
	 * @param root		传入的map
	 * @param outFile	输出后的文件全部路径
	 * @param filePath	输出前的文件上部路径
	 */
	public static void printFile(String ftlName, Map<String,Object> root, String outFile, String filePath, String ftlPath) throws Exception{
		try {
			File file = new File(PathUtil.getProjectpath() + filePath + outFile);
			if(!file.getParentFile().exists()){				//判断有没有父路径,就是判断文件整个路径是否存在
				file.getParentFile().mkdirs();				//不存在就全部创建
			}
			Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "utf-8"));
			Template template = getTemplate(ftlName, ftlPath);
			template.process(root, out);					//模版输出
			out.flush();
			out.close();
		} catch (TemplateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 通过文件名加载模版
	 * @param ftlName
	 */
	public static Template getTemplate(String ftlName, String ftlPath) throws Exception{
		try {
			Configuration cfg = new Configuration(Configuration.VERSION_2_3_23);  								//通过Freemaker的Configuration读取相应的ftl
			cfg.setEncoding(Locale.CHINA, "utf-8");
			cfg.setDirectoryForTemplateLoading(new File(PathUtil.getProjectpath()+"/admin/template/ftl/"+ftlPath));		//设定去哪里读取相应的ftl模板文件
			Template temp = cfg.getTemplate(ftlName);															//在模板文件目录中找到名称为name的文件
			return temp;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
}
 

 

0
0
分享到:
评论

相关推荐

    Java项目中利用Freemarker模板引擎导出--生成Word文档

    在项目中难免和各种数据报表打交道,如导出XX申请表,登记表,推荐表之类。就可以通过现有信息导出Word文档。基于Java语言来导出Word...编写导出的工具类(核心),并修改模板对应的占位符,有需要的话 编写控制层 测试

    freemarker java解析依赖工具类.zip

    这个"freemarker java解析依赖工具类.zip"文件似乎包含了用于处理Freemarker模板的Java源代码和实用工具类。下面将详细介绍Freemarker的基本概念、工作原理以及如何在Java中使用它。 Freemarker是一个基于模板的...

    使用freemarker模版引擎自动生成java项目源代码.zip

    【标题】"使用FreeMarker模版引擎自动生成Java项目源代码" 在软件开发过程中,代码生成是一个节省时间和提高效率的重要环节。FreeMarker是一个强大的、基于模板的Java模板引擎,广泛用于生成动态内容,如HTML、XML...

    通过freemarker模板 生成PDF

    **Freemarker模板** 是一个强大的Java模板引擎,用于动态生成文本输出,如HTML、XML或PDF。它支持变量替换、控制结构(如if/else)和复杂的逻辑,使得开发者能以模板语言编写静态部分,而动态数据则由程序在运行时...

    Java利用Freemarker模板自动生成dto、dao、rowmapper、bo、service代码

    开发者可以创建模板文件,定义类的结构和内容,然后Freemarker会根据提供的数据模型填充这些模板,生成最终的Java源代码。 2. **DTO(Data Transfer Object)**: DTO是一种设计模式,用于在不同系统或层之间传递...

    Java freemarker demo 【struts + freemarker】 自己修改的一个小例子

    Java FreeMarker是一个强大的模板引擎,常用于Web开发中生成动态HTML页面。在这个“Java FreeMarker demo 【Struts + FreeMarker】”示例中,我们将会探索如何将FreeMarker与Struts框架结合,以实现MVC(Model-View-...

    springboot如何使用Freemarker模版引擎

    通过以上步骤,你可以在SpringBoot应用中成功集成并使用Freemarker模板引擎。这只是一个基础的介绍,实际开发中,你可以根据项目需求配置更多的Freemarker特性和功能,如缓存管理、日期格式化等,以满足复杂的应用...

    Java模板引擎之FreeMarker

    总的来说,FreeMarker是一款强大且灵活的Java模板引擎,它为开发者提供了与数据模型交互的简便方式,是实现前后端分离的重要工具。通过熟练掌握FreeMarker,你可以提高Web应用的开发效率和可维护性。

    Java FreeMarker+Maven实现代码自动生成

    FreeMarker 是一个强大的模板引擎,而Maven作为项目构建工具,能够帮助我们管理和组织项目的构建过程。结合这两者,我们可以构建一个自动化代码生成系统,提升开发效率。 FreeMarker 模板引擎: FreeMarker 是一个...

    基于freemarker的JAVA代码生成工具

    4. **设置模板**:该工具使用Freemarker模板文件生成Java代码。你可以根据需求修改这些模板,以适应你的项目规范。例如,你可以调整实体类的属性注释、Service接口的方法签名等。 5. **运行代码生成器**:执行工具...

    Java用freemarker导出word例子

    `docx4j`提供了`HtmlToDocx`工具类来完成这个任务。 8. **代码示例** ```java import org.docx4j.Docx4J; import freemarker.template.Configuration; import freemarker.template.Template; // 配置...

    基于Freemarker模板的代码生成器工具

    本篇将重点介绍一款名为“基于Freemarker模板的代码生成器工具”,这是一款纯Java实现的工具,利用了Freemarker模板引擎的强大功能。 **一、Freemarker模板引擎** Freemarker是一个开源的模板语言,用于生成动态...

    Java模板引擎 FreeMarker.7z

    Java模板引擎FreeMarker是一款强大的开源模板技术,常用于Web应用中的动态内容生成,尤其是在MVC架构中,作为视图层的解决方案。它与Spring、Struts等框架配合使用,能够将业务逻辑与页面展示分离,使得开发者可以...

    访问FreeMarker的工具类

    `FreeMarkerUtils`是简化FreeMarker操作的实用工具类,通过封装FreeMarker的核心功能,使得开发者能更方便地使用模板引擎。理解并熟练运用`FreeMarkerUtils`,可以帮助我们高效地构建动态内容生成系统,提升开发效率...

    使用freeMarker模板和Spring boot后端API接口实现查询用户列表的功能。

    FreeMarker是一个Java模板引擎,它能够将数据模型(如Java对象)和HTML模板结合,生成最终的HTML页面。FreeMarker设计的目标是将呈现逻辑从应用程序代码中分离出来,使开发者可以专注于业务逻辑,而设计师可以专注...

    FreeMarker+poi 模板生成word+导入图片

    FreeMarker和Apache POI是两种在Java开发中广泛使用的工具,它们在处理文档生成和操作方面各有专长。本文将详细介绍这两个库如何协同工作来创建带有图片的Word文档。 **FreeMarker** FreeMarker是一个模板引擎,...

    JAVA生成WORD工具类

    总结来说,"JAVA生成WORD工具类"是Java编程中用于将XML模板数据转换成Word文档的一种技术实现,通过解析XML,绑定业务数据,利用Apache POI和可能的FreeMarker模板引擎来完成转换。这个工具类可以极大地方便开发者...

    Freemarker导出 word 和 pdf 工具类

    Freemarker是一款强大的Java模板引擎,常用于动态生成HTML、XML等格式的文档。在IT领域,它也常被用来生成非HTML格式的文档,如Word和PDF。本篇文章将详细解析如何使用Freemarker来导出Word和PDF文档,并探讨相关...

    SpringBoot+FreeMarker模板引擎demo

    FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员...

    java实现部分工具类

    可以使用模板引擎(如FreeMarker或Thymeleaf)或者直接在JSP页面上使用EL表达式和JSTL标签来实现。例如,通过遍历集合并输出每个元素的关键属性,可以生成一个动态表格展示数据。 3. **分页** 当数据量较大时,...

Global site tag (gtag.js) - Google Analytics