`
Blackbaby
  • 浏览: 183845 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

FreeMarker 模板文件 路径设置

    博客分类:
  • java
 
阅读更多

  

   1.freemarker 模板文件路径设置

   

import java.io.File;
import java.io.IOException;
import java.io.StringWriter;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.hike.export.Global;
import com.hike.export.exception.AppException;

import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.FileTemplateLoader;
import freemarker.cache.MultiTemplateLoader;
import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public abstract class FtlTemplateBuilder {

	private static final Logger LOG = LoggerFactory.getLogger(FtlTemplateBuilder.class);
	
	private static final Configuration cfg = new Configuration();

	private static final DefaultObjectWrapper wrapper = new DefaultObjectWrapper();
	
	static {
		try {
			init();
		} catch (IOException e) {
			
		}
	}
	
	private static void init() throws IOException{
		cfg.setDefaultEncoding("UTF-8");
		TemplateLoader file = new FileTemplateLoader(new File(Global.BASE_DIR));
		TemplateLoader clz = new ClassTemplateLoader(FtlTemplateBuilder.class,"/");
		TemplateLoader[] loaders = new TemplateLoader[]{file,clz};
		MultiTemplateLoader mtl = new MultiTemplateLoader(loaders);
		cfg.setTemplateLoader(mtl);
		cfg.setObjectWrapper(wrapper);
	}
	
	public static String processTemplateIntoString(String ftl, Object model) {
		StringWriter result = null;
		try {
		    Template template = cfg.getTemplate(ftl);
		    result = new StringWriter();
		    template.setEncoding("UTF-8");
		    template.process(model, result);
		} catch (IOException e) {
		    throw new AppException(e.getMessage());
		} catch (TemplateException e) {
		    throw new AppException(e.getMessage());
		}
		return result.toString();
	}
}

 

 

分享到:
评论

相关推荐

    两种freemarker模板路径设置方法.docx

    《两种Freemarker模板路径设置方法详解》 在Spring MVC框架中,Freemarker作为一款强大的模板引擎,常被用于动态生成HTML页面。本篇文章将详细介绍两种设置Freemarker模板路径的方法,帮助开发者更好地理解和应用。...

    freemarker根据模版生成文件使用例子

    本文将详细解析一个具体的使用案例:如何利用Freemarker根据模板生成文件,特别是Java环境下生成Hibernate的配置文件(*.hbm.xml)。此案例不仅展示了Freemarker的基本用法,还涉及到了自定义类、接口以及模板加载...

    通过freemarker模板 生成PDF

    `PDFTool`可能包含使用Freemarker的方法,如`processTemplate()`,此方法接受模板文件路径、数据模型和目标PDF输出路径作为参数。`FileController`则可能是处理HTTP请求的控制器,它接收一个HTML URL,并调用`PDF...

    freemarker模板导出word循环图片表格源码和详细教程

    然后,配置Freemarker模板的路径,创建一个`Template`对象,用以加载模板文件。 在模板文件中,我们可以设计好Word的布局,包括表格和图片的位置。使用`<#foreach>`标签,可以遍历数据模型中的列表,动态插入图片。...

    freemarker导出doc及docx

    你需要在这里定义数据模型,加载Freemarker模板,设置输出文件路径,然后调用Freemarker的API来生成文档。具体步骤如下: - 创建一个`Configuration`对象,配置Freemarker的模板目录。 - 加载Freemarker模板文件,...

    freemarker生成xml示例

    2. **Freemarker模板(Template)**:这是一个`.ftl`文件,里面定义了XML的结构和如何填充数据。例如,一个简单的模板可能如下所示: ```ftl ${person.name} ${person.age} ``` 在这个模板中,`...

    freemarker+xml动态模板生成doc文件技术

    3. **配置`Freemarker`**:设置`Freemarker`的配置项,如模板加载路径,模板解析策略等。 4. **解析并生成DOC文件**:使用`Freemarker`的API,将模板和数据模型合并,生成DOC文件。 在提供的`demo`文件中,可能包含...

    freemarker根据word模板生成word的完整示例

    配置对象需要设置正确的模板路径和编码。 2. **构建数据模型**:根据业务逻辑创建一个Map或JavaBean对象,其中包含了要插入到模板中的数据。 3. **创建模板对象**:使用`Configuration`对象的`getTemplate()`方法...

    excel 导出 freemarker

    FreeMarker模板语言(FTL)是模板中使用的标记语言,用于控制结构和逻辑。它与Java代码分离,使得模板设计者可以专注于样式和布局,而开发者则专注于业务逻辑。 二、准备环境 1. 添加依赖:在你的项目中,你需要...

    FreeMarker生成word文件

    1. **FreeMarker模板语言**:FreeMarker使用一种简单的模板语言,允许开发者通过定义变量和控制结构(如循环和条件语句)来动态地插入数据。在模板中,可以使用`<#if>`, `<#foreach>`, `${expression}`等语法来控制...

    freemarker模板使用

    - **模板(Template)**:Freemarker模板是包含固定文本和变量的文本文件,变量由后台程序填充。 - **数据模型(Data Model)**:提供给模板的数据结构,可以是Java对象、集合或Map等。 - **Freemarker配置...

    freemarker解析成pdf

    3. **配置Freemarker**:初始化Freemarker配置,加载模板文件,并设置字符编码等参数。代码可能如下: ```java Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg....

    struts2与Freemarker的配置文件

    这个动作的成功结果是返回一个FreeMarker模板文件,路径是/WEB-INF/templates/user.ftl。 整个配置过程需要注意的几个关键点包括: 1. 确保FreeMarker模板编辑插件正确安装并配置好,以提高开发效率。 2. 在导入jar...

    struts2和freemarker整合

    4. **Action返回值**:Action类的execute方法返回一个结果字符串,对应于FreeMarker模板文件的路径。 5. **数据绑定**:在Action类中设置需要传递给视图的数据,这些数据将在FreeMarker模板中被引用。 6. **模板编写...

    一个意义深刻 FreeMarker 入门例子之HelloWord

    FreeMarker模板文件(通常以`.ftl`为扩展名)包含了动态内容的占位符,这些占位符会在运行时被实际的值替换。 这个压缩包`FreeMarker_Example.zip`包含两个主要部分: 1. **FreeMarkerTest目录**:这是一个工程...

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

    2. **FreeMarker配置**: 在Java代码中,设置FreeMarker的配置,加载模板文件,并定义数据模型,该模型包含要填充到模板中的数据,比如图片路径。 3. **POI读取模板**: 使用Apache POI的`XWPFDocument`类打开模板文件...

    Struts2与FreeMarker模板

    接下来,在项目的类路径下创建`/WEB-INF/templates`目录,将FreeMarker模板文件放置于此目录下。 #### 使用FreeMarker模板 在Struts2的Action中,可以通过设置模型属性来向模板传递数据。例如: ```java public ...

    Freemarker导出word示例,包括jfreechart图表

    - 一个或多个Freemarker模板文件(.ftl),定义了Word文档的布局和占位符。 - 示例数据模型类或JSON文件,用于填充模板。 - Java源代码,展示了如何使用Freemarker和JFreechart进行操作。 - 图表生成的临时图像文件...

    Freemarker模版开发指南

    本指南将深入探讨Freemarker模板的开发,帮助你掌握其主要特性和用法。 1. **模板语法** Freemarker的模板语言基于简单的文本文件,使用特定的指令和表达式。例如,`<#if>`用于条件判断,`<#foreach>`用于循环,`$...

    spring与freemarker整合 示例源码

    - 配置Spring:在Spring的配置文件(如`applicationContext.xml`)中,定义`FreemarkerConfigurer` Bean,设置Freemarker的配置属性,例如模板路径、编码格式等。 - 配置视图解析器:定义`FreemarkerViewResolver`...

Global site tag (gtag.js) - Google Analytics