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模板路径设置方法详解》 在Spring MVC框架中,Freemarker作为一款强大的模板引擎,常被用于动态生成HTML页面。本篇文章将详细介绍两种设置Freemarker模板路径的方法,帮助开发者更好地理解和应用。...
本文将详细解析一个具体的使用案例:如何利用Freemarker根据模板生成文件,特别是Java环境下生成Hibernate的配置文件(*.hbm.xml)。此案例不仅展示了Freemarker的基本用法,还涉及到了自定义类、接口以及模板加载...
`PDFTool`可能包含使用Freemarker的方法,如`processTemplate()`,此方法接受模板文件路径、数据模型和目标PDF输出路径作为参数。`FileController`则可能是处理HTTP请求的控制器,它接收一个HTML URL,并调用`PDF...
然后,配置Freemarker模板的路径,创建一个`Template`对象,用以加载模板文件。 在模板文件中,我们可以设计好Word的布局,包括表格和图片的位置。使用`<#foreach>`标签,可以遍历数据模型中的列表,动态插入图片。...
你需要在这里定义数据模型,加载Freemarker模板,设置输出文件路径,然后调用Freemarker的API来生成文档。具体步骤如下: - 创建一个`Configuration`对象,配置Freemarker的模板目录。 - 加载Freemarker模板文件,...
2. **Freemarker模板(Template)**:这是一个`.ftl`文件,里面定义了XML的结构和如何填充数据。例如,一个简单的模板可能如下所示: ```ftl ${person.name} ${person.age} ``` 在这个模板中,`...
3. **配置`Freemarker`**:设置`Freemarker`的配置项,如模板加载路径,模板解析策略等。 4. **解析并生成DOC文件**:使用`Freemarker`的API,将模板和数据模型合并,生成DOC文件。 在提供的`demo`文件中,可能包含...
配置对象需要设置正确的模板路径和编码。 2. **构建数据模型**:根据业务逻辑创建一个Map或JavaBean对象,其中包含了要插入到模板中的数据。 3. **创建模板对象**:使用`Configuration`对象的`getTemplate()`方法...
FreeMarker模板语言(FTL)是模板中使用的标记语言,用于控制结构和逻辑。它与Java代码分离,使得模板设计者可以专注于样式和布局,而开发者则专注于业务逻辑。 二、准备环境 1. 添加依赖:在你的项目中,你需要...
1. **FreeMarker模板语言**:FreeMarker使用一种简单的模板语言,允许开发者通过定义变量和控制结构(如循环和条件语句)来动态地插入数据。在模板中,可以使用`<#if>`, `<#foreach>`, `${expression}`等语法来控制...
- **模板(Template)**:Freemarker模板是包含固定文本和变量的文本文件,变量由后台程序填充。 - **数据模型(Data Model)**:提供给模板的数据结构,可以是Java对象、集合或Map等。 - **Freemarker配置...
3. **配置Freemarker**:初始化Freemarker配置,加载模板文件,并设置字符编码等参数。代码可能如下: ```java Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg....
这个动作的成功结果是返回一个FreeMarker模板文件,路径是/WEB-INF/templates/user.ftl。 整个配置过程需要注意的几个关键点包括: 1. 确保FreeMarker模板编辑插件正确安装并配置好,以提高开发效率。 2. 在导入jar...
4. **Action返回值**:Action类的execute方法返回一个结果字符串,对应于FreeMarker模板文件的路径。 5. **数据绑定**:在Action类中设置需要传递给视图的数据,这些数据将在FreeMarker模板中被引用。 6. **模板编写...
FreeMarker模板文件(通常以`.ftl`为扩展名)包含了动态内容的占位符,这些占位符会在运行时被实际的值替换。 这个压缩包`FreeMarker_Example.zip`包含两个主要部分: 1. **FreeMarkerTest目录**:这是一个工程...
2. **FreeMarker配置**: 在Java代码中,设置FreeMarker的配置,加载模板文件,并定义数据模型,该模型包含要填充到模板中的数据,比如图片路径。 3. **POI读取模板**: 使用Apache POI的`XWPFDocument`类打开模板文件...
接下来,在项目的类路径下创建`/WEB-INF/templates`目录,将FreeMarker模板文件放置于此目录下。 #### 使用FreeMarker模板 在Struts2的Action中,可以通过设置模型属性来向模板传递数据。例如: ```java public ...
- 一个或多个Freemarker模板文件(.ftl),定义了Word文档的布局和占位符。 - 示例数据模型类或JSON文件,用于填充模板。 - Java源代码,展示了如何使用Freemarker和JFreechart进行操作。 - 图表生成的临时图像文件...
本指南将深入探讨Freemarker模板的开发,帮助你掌握其主要特性和用法。 1. **模板语法** Freemarker的模板语言基于简单的文本文件,使用特定的指令和表达式。例如,`<#if>`用于条件判断,`<#foreach>`用于循环,`$...
- 配置Spring:在Spring的配置文件(如`applicationContext.xml`)中,定义`FreemarkerConfigurer` Bean,设置Freemarker的配置属性,例如模板路径、编码格式等。 - 配置视图解析器:定义`FreemarkerViewResolver`...