public class FreemarkerTest {
private final Log logger=LogFactory.getLog(getClass());
private Configuration freemarke_cfg=null;
protected Configuration getFreeMarkerCFG(String sTemplateFilePath){
if(null==freemarke_cfg){
freemarke_cfg=new Configuration();
freemarke_cfg.setEncoding(Locale.CHINA, "UTF-8");
//基于类路径的模版加载器
freemarke_cfg.setClassForTemplateLoading(this.getClass (), "/websiteroot/freemarker");
try{
freemarke_cfg.setDirectoryForTemplateLoading(new File (sTemplateFilePath));
}catch (Exception e) {
e.printStackTrace();
}
}
return freemarke_cfg;
}
/**
*生成静态文件
*@param templatePath:模板路径
*@param templateFileName:模板名称
*@param propMap:存放数据模型的Map
*@param htmlFilePath:生成HTML页面的存放路径
*@param htmlFileName:生成html页面的名称
* */
public boolean geneHtmlFile(String templatePath,String templateFileName,Map propMap,String htmlFilePath,String htmlFileName){
try{
Template t=getFreeMarkerCFG(templatePath).getTemplate(templateFileName);
t.setEncoding("UTF-8");
creatDirs(htmlFilePath);
File afile = new File(htmlFilePath+"/"+htmlFileName);
//设置生成的文件编码为UTF-8
//服务器不支持UTF-8格式HTML时候使用ANSI格式HTML文件,即系统默认编码
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(afile),"UTF-8"));
t.process(propMap, out);
}catch(TemplateException e){
logger.error("Error "+templateFileName,e);
return false;
}catch(IOException e){
logger.error("Error "+htmlFileName,e);
return false;
}
return true;
}
public static boolean creatDirs(String path){
File aFile = new File(path);
if(!aFile.exists()){
return aFile.mkdirs();
}else{
return true;
}
}
}
分享到:
相关推荐
`Freemarker`是一个强大的模板引擎,通常用于动态生成HTML、XML等文本格式,而将`Freemarker`与HTML模板结合生成PDF,可以充分利用HTML的易编辑性和富文本特性,为用户提供高质量的文档输出。下面我们将深入探讨如何...
这个"freeMarker生成html实用例子"很可能是提供了一些实际应用FreeMarker模板语言来生成HTML页面的示例代码。下面我们将深入探讨FreeMarker的核心概念、如何使用它以及其在生成HTML中的优势。 1. **FreeMarker核心...
Freemarker是一个强大的模板引擎,它支持动态语言,常用于生成HTML页面或者其他文本文件。在Java领域,Freemarker被广泛应用于邮件模板、动态报表生成以及代码生成等场景。它通过定义模板文件,结合数据模型,可以...
3. **处理模板**:使用Freemarker API的`Configuration`和`Template`类,将数据模型应用到模板上,生成HTML字符串。 4. **调用wkhtmltox**:通过Java绑定库,将生成的HTML字符串转换为PDF。 5. **保存PDF**:将生成...
在本项目"springboot整合freemarker生成静态html的demo.zip"中,我们将探讨如何将SpringBoot框架与FreeMarker模板引擎结合,以实现动态数据驱动的静态HTML页面生成。FreeMarker是一个强大的、开源的模板语言,它允许...
结合SpringBoot和JPA,我们可以创建一个服务,该服务使用JPA的Repository接口与数据库进行交互,并通过Freemarker生成动态SQL。具体步骤如下: 1. **设置项目**:创建一个SpringBoot项目,添加Spring Data JPA和...
标题“使用FreeMarker生成Html静态文件”暗示了我们将探讨如何利用FreeMarker将动态数据转化为静态的HTML页面。这一过程通常涉及以下几个步骤: 1. **配置FreeMarker**: 首先,我们需要在Java项目中引入FreeMarker...
Java集成Freemarker生成静态HTML的过程是一个常见的技术实践,它能提高网站的加载速度和用户体验。下面我们将详细探讨这个过程。 首先,集成Freemarker需要引入相应的依赖。在Spring Boot项目中,我们可以添加`...
通过Java生成HTML,我们可以将数据结构转化为用户友好的网页格式,便于在浏览器中查看。 标题 "java代码生成html文件" 指的是利用Java编程语言编写代码,生成HTML文档。HTML(HyperText Markup Language)是网页...
在这个Eclipse项目中,你可能需要创建一个Java类来提供数据模型,然后使用Freemarker API来加载模板文件,并结合数据模型生成HTML。这通常涉及到以下几个步骤: 1. 创建数据模型(如Java对象)。 2. 初始化...
2. 使用FreeMarker生成HTML: 在Web开发中,FreeMarker常用于生成动态HTML页面。首先,创建一个HTML模板,其中包含`${}`内的变量,这些变量将在运行时被Java对象的属性值替换。然后,创建一个Java类,设置需要的...
在Web应用中,通常用于生成动态HTML页面。但Freemarker并不仅限于此,它也可以用于生成各种类型的文档,如Word文档(.doc, .docx)。 **2. SpringBoot整合Freemarker** SpringBoot简化了Freemarker的集成。在...
Java FreeMarker是一个强大的模板引擎,常用于Web开发中生成动态HTML页面。在这个“Java FreeMarker demo 【Struts + FreeMarker】”示例中,我们将会探索如何将FreeMarker与Struts框架结合,以实现MVC(Model-View-...
同时,这个描述中还提到了转换为PDF格式,虽然FreeMarker本身不直接支持PDF生成,但可以结合其他库,如Apache POI或iText,先用FreeMarker生成HTML或Word,再转换为PDF。 在实际应用中,这个过程可能会涉及到一些...
Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的文本文件。它以简洁的语法和灵活的功能著称,使得开发者可以专注于数据的处理,而不用关心页面的呈现细节。本篇文章将深入探讨如何使用...
3. **生成HTML**:这是Freemarker最常用的功能之一,它广泛应用于Web应用的视图层,将后台数据与HTML模板结合,动态生成网页。开发者创建HTML模板,用`<#...>`标签定义控制逻辑,`${...}`插入变量,然后使用...
Freemarker是一个基于Java的模板引擎,可以用来生成文本输出(包括HTML网页、配置文件、源代码等)。它使用一种“模板+数据”的方式生成最终结果,因此特别适合于生成动态文档。Freemarker本身不依赖于外部框架,...
7. **部署和维护**:生成的静态HTML页面可以部署到Web服务器上,供用户访问。由于它们不涉及服务器端的动态处理,所以性能往往更好。同时,由于数据和显示分离,更新内容时只需修改数据模型,无需触碰HTML,降低了...
在Java应用中,FreeMarker通常与Servlet容器一起使用,用于生成动态网页内容,但也可以用来生成任何类型的文本输出,包括PDF。 接下来是Itext。Itext提供了一系列API,可以方便地创建PDF文档,包括添加文本、图像、...