`

freemarker 根据模板生成内容

 
阅读更多

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根据模板生成word

    Freemarker模板生成pdf+java

    Freemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+javaFreemarker模板生成pdf+java

    通过freemarker模板 生成PDF

    在生成PDF的过程中,首先,你需要创建一个Freemarker模板,该模板定义了PDF的布局和样式。模板中包含占位符,这些占位符将在运行时被实际数据替换。例如,你可以创建一个`.ftl`文件,其中包含HTML元素和Freemarker...

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

    在这个示例中,我们将深入探讨如何使用Freemarker根据XML模板生成Word文档。 首先,你需要了解Freemarker的基本概念。Freemarker是一个基于模板的语言,它的核心是模板文件,模板文件中包含了一系列控制结构(如...

    Java利用Freemarker模板自动生成dto、dao、rowmapper、bo、service代码

    总的来说,Java利用Freemarker模板生成代码是一种常见的自动化开发实践,它提高了开发效率,降低了出错概率,让开发者能更专注于业务逻辑的实现,而不是基础架构的搭建。通过理解和掌握这一技术,开发者可以更好地...

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

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

    freemarker模板技术生成复杂word文档---解决了编码问题

    3.写java程序根据模板生成word 总结,之前在网上查到这个资料怎么调试都失败,后来经过反复查找发现是编码问题导致生成word格式错误,已经修正,希望能给大家带来帮助。 效率测试生成100000行数据大概4000毫秒...

    利用freemarker 模板生成pdf ,利用easypoi 生成excel(带图片,水印,分页)

    本主题将探讨如何利用Freemarker模板生成PDF以及如何使用EasyPOI生成带有图片、水印和分页功能的Excel。 首先,让我们深入了解Freemarker。Freemarker是一个强大的模板引擎,它用于生成文本输出,如HTML、XML或PDF...

    Java freemarker 模板生成word动态表格

    总结来说,Java FreeMarker模板生成Word动态表格是通过结合FreeMarker模板引擎的灵活性和Apache POI的强大功能,来高效地创建和更新包含动态数据的Word文档,尤其适用于需要大量定制和自动化生成的场景。通过理解并...

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

    **FreeMarker + POI:模板生成Word并导入图片** 结合FreeMarker和Apache POI,我们可以创建一个模板Word文档,其中包含占位符,然后使用POI读取和填充这个模板,同时插入图片,生成最终的动态Word文档。以下是这个...

    基于Freemarker模板的代码生成器工具

    在软件开发过程中,代码生成器是一个非常实用的工具,它能够自动化地根据预定义的模板生成大量重复或模式化的源代码,极大地提高了开发效率。本篇将重点介绍一款名为“基于Freemarker模板的代码生成器工具”,这是一...

    freemarker模板生成word文档完整代码

    最近在做一个出卷系统,需要通过试卷模板从数据库中抽取题目,然后按照模板的样式生成完整的试卷,包括试卷格式的排版和图片的写入。这是用freemarker模板生成word文档。里面包括完整代码和所需jar包。

    freemarker+html生成pdf.zip

    首先,`Freemarker`是一个基于Java的模板语言,它允许开发者通过模板和数据模型来生成输出。它的核心理念是分离内容和表现,使得开发人员能够专注于业务逻辑,而设计师可以专注于页面布局。`Freemarker`模板文件通常...

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

    本示例主要展示了如何使用Freemarker根据XML模板生成Word文档。以下是对这一技术的详细解释: 1. **Freemarker简介**: Freemarker是一个开源的Java库,它能够将数据模型与HTML、XML或其他文本格式的模板结合,...

    freemarker wrod 统计图的生成

    3. **FreeMarker模板**: 创建一个FreeMarker模板,定义好Word文档的结构,并在合适的位置预留出插入图片的占位符。 4. **数据传递**: 将图片的URL或本地路径作为数据传递给FreeMarker模板。在模板中使用`&lt;img&gt;`标签...

    根据模板,freemarker、xDoc、POI三种方式生成Word文档(含jar包)

    通过三种不同的方式(freemarker+jfreechart、xDoc、POI),根据模板创建Word文件。可以动态修改Word中表格(table)、图表(chart)等数据。导入工程后,可直接运行xxxDemo文件,查看文档生成效果。详见压缩包中的...

    springmvc采用freemarker动态生成带图片的word

    5. SpringMVC控制器接收到请求后,将数据模型(包括Base64字符串)传递给Freemarker模板。 6. Freemarker根据模板和数据模型生成最终的Word文档。 7. 将生成的Word文档返回给客户端下载或在线预览。 这个项目的实现...

    freemarker+itext生成PDF

    总结来说,"freemarker+itext生成PDF"的主题涵盖了使用FreeMarker模板引擎和Itext库在Java环境中动态生成PDF的技术。这是一项实用技能,对于需要自动化生成PDF文档的项目非常有价值。通过学习和实践这个主题,开发者...

    Freemarker代码生成器实体映射xml的ftl模板文件

    这个`XML.ftl`文件就是核心,它是Freemarker模板的实例,其中定义了如何根据输入数据生成XML实体映射文件的规则。 首先,让我们深入理解Freemarker模板。FTL文件由一系列指令和表达式组成,这些指令和表达式决定了...

    Freemarker利用模板生成word的使用(java生成word)

    首先,理解Freemarker模板的基本概念。Freemarker模板是由HTML或XML格式的文本组成,其中包含了特殊的指令(如${}和[])来表示变量和控制结构。这些指令会被Freemarker引擎解析并替换为实际的值,生成最终的输出。 ...

Global site tag (gtag.js) - Google Analytics