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; } }
相关推荐
在项目中难免和各种数据报表打交道,如导出XX申请表,登记表,推荐表之类。就可以通过现有信息导出Word文档。基于Java语言来导出Word...编写导出的工具类(核心),并修改模板对应的占位符,有需要的话 编写控制层 测试
这个"freemarker java解析依赖工具类.zip"文件似乎包含了用于处理Freemarker模板的Java源代码和实用工具类。下面将详细介绍Freemarker的基本概念、工作原理以及如何在Java中使用它。 Freemarker是一个基于模板的...
【标题】"使用FreeMarker模版引擎自动生成Java项目源代码" 在软件开发过程中,代码生成是一个节省时间和提高效率的重要环节。FreeMarker是一个强大的、基于模板的Java模板引擎,广泛用于生成动态内容,如HTML、XML...
该项目是一款Python实现的轻量级模板渲染工具,模仿了Java Freemarker的语法,旨在生成文本、CSV文件和代码等。由于功能相对简化,故命名为“not so free marker”。该项目包含22个文件,其中Python代码文件14个,...
开发者可以创建模板文件,定义类的结构和内容,然后Freemarker会根据提供的数据模型填充这些模板,生成最终的Java源代码。 2. **DTO(Data Transfer Object)**: DTO是一种设计模式,用于在不同系统或层之间传递...
**Freemarker模板** 是一个强大的Java模板引擎,用于动态生成文本输出,如HTML、XML或PDF。它支持变量替换、控制结构(如if/else)和复杂的逻辑,使得开发者能以模板语言编写静态部分,而动态数据则由程序在运行时...
Java FreeMarker是一个强大的模板引擎,常用于Web开发中生成动态HTML页面。在这个“Java FreeMarker demo 【Struts + FreeMarker】”示例中,我们将会探索如何将FreeMarker与Struts框架结合,以实现MVC(Model-View-...
通过以上步骤,你可以在SpringBoot应用中成功集成并使用Freemarker模板引擎。这只是一个基础的介绍,实际开发中,你可以根据项目需求配置更多的Freemarker特性和功能,如缓存管理、日期格式化等,以满足复杂的应用...
总的来说,FreeMarker是一款强大且灵活的Java模板引擎,它为开发者提供了与数据模型交互的简便方式,是实现前后端分离的重要工具。通过熟练掌握FreeMarker,你可以提高Web应用的开发效率和可维护性。
FreeMarker 是一个强大的模板引擎,而Maven作为项目构建工具,能够帮助我们管理和组织项目的构建过程。结合这两者,我们可以构建一个自动化代码生成系统,提升开发效率。 FreeMarker 模板引擎: FreeMarker 是一个...
在IT行业中,SpringBoot、JPA(Java Persistence API)和Freemarker是常见的开发工具和技术,它们在构建高效、灵活的Web应用时发挥着重要作用。本篇将详细讲解如何利用这些技术来生成动态SQL。 首先,SpringBoot是...
4. **设置模板**:该工具使用Freemarker模板文件生成Java代码。你可以根据需求修改这些模板,以适应你的项目规范。例如,你可以调整实体类的属性注释、Service接口的方法签名等。 5. **运行代码生成器**:执行工具...
在实际应用中,我们通常会将这些步骤封装到一个服务类或工具类中,以便在多个地方重用。同时,为了提高性能和代码可维护性,模板文件应与Java源代码分离,存储在类路径的某个资源目录下。 在提供的压缩包`demo`中,...
`docx4j`提供了`HtmlToDocx`工具类来完成这个任务。 8. **代码示例** ```java import org.docx4j.Docx4J; import freemarker.template.Configuration; import freemarker.template.Template; // 配置...
本篇将重点介绍一款名为“基于Freemarker模板的代码生成器工具”,这是一款纯Java实现的工具,利用了Freemarker模板引擎的强大功能。 **一、Freemarker模板引擎** Freemarker是一个开源的模板语言,用于生成动态...
Java模板引擎FreeMarker是一款强大的开源模板技术,常用于Web应用中的动态内容生成,尤其是在MVC架构中,作为视图层的解决方案。它与Spring、Struts等框架配合使用,能够将业务逻辑与页面展示分离,使得开发者可以...
`FreeMarkerUtils`是简化FreeMarker操作的实用工具类,通过封装FreeMarker的核心功能,使得开发者能更方便地使用模板引擎。理解并熟练运用`FreeMarkerUtils`,可以帮助我们高效地构建动态内容生成系统,提升开发效率...
FreeMarker是一个Java模板引擎,它能够将数据模型(如Java对象)和HTML模板结合,生成最终的HTML页面。FreeMarker设计的目标是将呈现逻辑从应用程序代码中分离出来,使开发者可以专注于业务逻辑,而设计师可以专注...
总结来说,"JAVA生成WORD工具类"是Java编程中用于将XML模板数据转换成Word文档的一种技术实现,通过解析XML,绑定业务数据,利用Apache POI和可能的FreeMarker模板引擎来完成转换。这个工具类可以极大地方便开发者...
FreeMarker和Apache POI是两种在Java开发中广泛使用的工具,它们在处理文档生成和操作方面各有专长。本文将详细介绍这两个库如何协同工作来创建带有图片的Word文档。 **FreeMarker** FreeMarker是一个模板引擎,...