package com.froad.openapi.common.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import com.froad.openapi.common.FreeMarkerUtil;
import com.froad.openapi.util.ExceptionMsgFormat;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class FreeMarkerUtilImpl implements FreeMarkerUtil{
final Log logger = LogFactory.getLog(FreeMarkerUtilImpl.class);
private Map<String, String> templatePathMap ;//= new HashMap<String, String>();
private Map<String, Template> templateMap = new HashMap<String, Template>();
public FreeMarkerUtilImpl() {
//initTemplateMap();
}
public void initTemplateMap() {
if(null != templatePathMap && templatePathMap.size() > 0) {
for (String key : templatePathMap.keySet()) {
try {
templateMap.put(key, freeMarkerConfigurer.getConfiguration().getTemplate(templatePathMap.get(key)));
} catch (Exception e) {
logger.error(ExceptionMsgFormat.errorMessageFormat(e));
}
}
}
}
public Map<String, String> getTemplatePathMap() {
return templatePathMap;
}
public void setTemplatePathMap(Map<String, String> templatePathMap) {
this.templatePathMap = templatePathMap;
}
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
@Autowired
private Configuration freeMarkerConfiguration;
private List<String> templatePath = new ArrayList<String>();
public void setFreeMarkerConfigurer(
FreeMarkerConfigurer freeMarkerConfigurer) {
this.freeMarkerConfigurer = freeMarkerConfigurer;
}
public void setFreeMarkerConfiguration(Configuration freeMarkerConfiguration) {
this.freeMarkerConfiguration = freeMarkerConfiguration;
}
public String getContent(String templateName, Map<String, Object> model) {
try {
Template t = this.templateMap.get(templateName);
return FreeMarkerTemplateUtils.processTemplateIntoString(t, model);
} catch (Exception ex) {
ex.printStackTrace();
logger.error(ExceptionMsgFormat.errorMessageFormat(ex));
try {
Template t = this.templateMap.get(templateName);
return FreeMarkerTemplateUtils.processTemplateIntoString(t,
model);
} catch (Exception e) {
e.printStackTrace();
logger.error(ExceptionMsgFormat.errorMessageFormat(ex));
}
}
return null;
}
}
配置文件
<bean id="freeMarkerUtil" class=“openapi.common.impl.FreeMarkerUtilImpl" init-method="initTemplateMap">
<property name="freeMarkerConfigurer" ref="freeMarkerConfigurer" />
<property name="freeMarkerConfiguration" ref="freeMarkerConfiguration" />
<property name="templatePathMap" ref="templatePathMap"></property>
</bean>
<bean id="templatePathMap" class="java.util.HashMap">
<constructor-arg>
<map>
<entry key="Android_SD_Fail.page">
<value>Android_SD_Fail.page</value>
</entry>
相关推荐
freemarker根据模板生成word,freemarker根据模板生成word,freemarker根据模板生成word
Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java
在生成PDF的过程中,首先,你需要创建一个Freemarker模板,该模板定义了PDF的布局和样式。模板中包含占位符,这些占位符将在运行时被实际数据替换。例如,你可以创建一个`.ftl`文件,其中包含HTML元素和Freemarker...
在这个示例中,我们将深入探讨如何使用Freemarker根据XML模板生成Word文档。 首先,你需要了解Freemarker的基本概念。Freemarker是一个基于模板的语言,它的核心是模板文件,模板文件中包含了一系列控制结构(如...
总的来说,Java利用Freemarker模板生成代码是一种常见的自动化开发实践,它提高了开发效率,降低了出错概率,让开发者能更专注于业务逻辑的实现,而不是基础架构的搭建。通过理解和掌握这一技术,开发者可以更好地...
本文将详细解析一个具体的使用案例:如何利用Freemarker根据模板生成文件,特别是Java环境下生成Hibernate的配置文件(*.hbm.xml)。此案例不仅展示了Freemarker的基本用法,还涉及到了自定义类、接口以及模板加载...
3.写java程序根据模板生成word 总结,之前在网上查到这个资料怎么调试都失败,后来经过反复查找发现是编码问题导致生成word格式错误,已经修正,希望能给大家带来帮助。 效率测试生成100000行数据大概4000毫秒...
本主题将探讨如何利用Freemarker模板生成PDF以及如何使用EasyPOI生成带有图片、水印和分页功能的Excel。 首先,让我们深入了解Freemarker。Freemarker是一个强大的模板引擎,它用于生成文本输出,如HTML、XML或PDF...
总结来说,Java FreeMarker模板生成Word动态表格是通过结合FreeMarker模板引擎的灵活性和Apache POI的强大功能,来高效地创建和更新包含动态数据的Word文档,尤其适用于需要大量定制和自动化生成的场景。通过理解并...
**FreeMarker + POI:模板生成Word并导入图片** 结合FreeMarker和Apache POI,我们可以创建一个模板Word文档,其中包含占位符,然后使用POI读取和填充这个模板,同时插入图片,生成最终的动态Word文档。以下是这个...
在软件开发过程中,代码生成器是一个非常实用的工具,它能够自动化地根据预定义的模板生成大量重复或模式化的源代码,极大地提高了开发效率。本篇将重点介绍一款名为“基于Freemarker模板的代码生成器工具”,这是一...
最近在做一个出卷系统,需要通过试卷模板从数据库中抽取题目,然后按照模板的样式生成完整的试卷,包括试卷格式的排版和图片的写入。这是用freemarker模板生成word文档。里面包括完整代码和所需jar包。
首先,`Freemarker`是一个基于Java的模板语言,它允许开发者通过模板和数据模型来生成输出。它的核心理念是分离内容和表现,使得开发人员能够专注于业务逻辑,而设计师可以专注于页面布局。`Freemarker`模板文件通常...
本示例主要展示了如何使用Freemarker根据XML模板生成Word文档。以下是对这一技术的详细解释: 1. **Freemarker简介**: Freemarker是一个开源的Java库,它能够将数据模型与HTML、XML或其他文本格式的模板结合,...
3. **FreeMarker模板**: 创建一个FreeMarker模板,定义好Word文档的结构,并在合适的位置预留出插入图片的占位符。 4. **数据传递**: 将图片的URL或本地路径作为数据传递给FreeMarker模板。在模板中使用`<img>`标签...
通过三种不同的方式(freemarker+jfreechart、xDoc、POI),根据模板创建Word文件。可以动态修改Word中表格(table)、图表(chart)等数据。导入工程后,可直接运行xxxDemo文件,查看文档生成效果。详见压缩包中的...
5. SpringMVC控制器接收到请求后,将数据模型(包括Base64字符串)传递给Freemarker模板。 6. Freemarker根据模板和数据模型生成最终的Word文档。 7. 将生成的Word文档返回给客户端下载或在线预览。 这个项目的实现...
总结来说,"freemarker+itext生成PDF"的主题涵盖了使用FreeMarker模板引擎和Itext库在Java环境中动态生成PDF的技术。这是一项实用技能,对于需要自动化生成PDF文档的项目非常有价值。通过学习和实践这个主题,开发者...
这个`XML.ftl`文件就是核心,它是Freemarker模板的实例,其中定义了如何根据输入数据生成XML实体映射文件的规则。 首先,让我们深入理解Freemarker模板。FTL文件由一系列指令和表达式组成,这些指令和表达式决定了...
首先,理解Freemarker模板的基本概念。Freemarker模板是由HTML或XML格式的文本组成,其中包含了特殊的指令(如${}和[])来表示变量和控制结构。这些指令会被Freemarker引擎解析并替换为实际的值,生成最终的输出。 ...