`

ftl模板

    博客分类:
  • flex
阅读更多
ftl模版文件生成静态页面 

2012-02-16 15:48:40|  分类: coding |字号 订阅
action部分代码:
public class Cretehtml {
    private Map<String,Object> root=new HashMap<String, Object>();
    //生成静态化页面
    public String execute() throws Exception {
        //将用到的变量存放到root
        root.put("name", member.getName());
        root.put("userid", member.getUserId());
        root.put("age", member.getAge());
        //静态页面的完整路径
        String str=ServletActionContext.getServletContext().getRealPath("/")+"/statichtml/index.html";
        File file=new File(str);
        //如果静态文件存在,则删除静态页面之后重新生成
        if(file.isFile()&&file.exists()){
            file.delete();           
        }
        str=null;//释放资源
        if(file!=null)file=null;
        StaticFreemarker.createHTML(ServletActionContext.getServletContext(), root, "sy/index.ftl", "/statichtml/index.html");
        return "firstpage";
    }
}
StaticFreemarker 类:
/**
     *
     * @param context             
     * @param data                传送的数据
     * @param templatePath        ftl路径
     * @param targetHtmlPath      生成html文件的路径
     */
    class StaticFreemarker {
        public static void createHTML(ServletContext context,Map<String,Object>data,String templatePath,String targetHtmlPath) {
            Configuration cfg = new Configuration();
            cfg.setServletContextForTemplateLoading(context, "/WEB-INF/template/");//ftl的基本路径
            cfg.setEncoding(Locale.getDefault(), "utf-8");//设置编码
            Writer out = null;
            try {
                Template t = cfg.getTemplate(templatePath, "utf-8");//获取模板文件
                t.setEncoding("utf-8");           
                //静态页面路径设置
                String htmlPath = context.getRealPath("/")+"/"+targetHtmlPath;
                File htmlFile = new File(htmlPath);
                out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile),"utf-8"));
                t.process(data, out);//将数据写到静态页面           
            } catch (Exception e) {
                e.printStackTrace();
            } finally{
                if(out != null){
                    try {
                        out.flush();
                        out.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }           
            }
        }
    }
分享到:
评论

相关推荐

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

    在这个场景下,"Freemarker代码生成器实体映射xml的ftl模板文件"是指利用Freemarker模板技术来创建一个用于生成XML实体映射文件的模板。这个`XML.ftl`文件就是核心,它是Freemarker模板的实例,其中定义了如何根据...

    Java根据ftl模板生成多表格复杂性word文档

    在Java项目中,我们通常会创建一个FTL模板文件,这个文件包含固定的文本结构以及用特定语法表示的变量和控制结构。例如,你可以创建一个`.ftl`文件,其中包含表格的定义,然后在表格中插入动态数据。 当涉及到多...

    ftl模板自动生成dao、service层功能,包括实现

    ftl模板自动生成dao、service层功能,包括实现... ftl模板自动生成dao、service层功能,包括实现... ftl模板自动生成dao、service层功能,包括实现... ftl模板自动生成dao、service层功能,包括实现...

    关于eclipse的ftl模板的技巧设置方法

    ### 关于Eclipse中FTL模板的技巧设置方法 #### 概述 FreeMarker Template Language (FTL) 是一种用于生成文本输出的模板语言。它广泛应用于Java Web开发中,帮助开发者快速构建动态网页。然而,对于开发者而言,...

    ftl排版-xml格式化.zip

    开发者可以将Java对象(由XML配置的bean)传递给FTL模板,然后由FTL负责根据数据生成最终的视图。 总之,“ftl排版-xml格式化.zip”提供了一个工具,帮助开发者更有效地处理XML和FTL相关的任务,提升开发效率并确保...

    ftl模板,里面涉及循环体,包括多图片导出到pdf

    对应文章中的java导出PDF

    html转img图片或ImgBase64(通过ftl模板填充数据转为图片)

    在IT行业中,将HTML转换为图片或ImgBase64是一种常见的需求,特别是在数据可视化、报告生成、社交媒体分享等方面。...通过FTL模板填充数据,我们可以创建可动态更新的图片,进而提高用户体验和内容的传播效率。

    ftl模板生成的word文档打不开

    然而,在实际应用中,使用Ftl生成Word文档时可能会遇到一些问题,如“ftl模板生成的word文档打不开”,这通常是由于一些特定的原因导致的。以下是一些可能的解决方案和相关的知识点: 1. **Word 2003 XML格式兼容...

    Java通过word编辑为xml和ftl格式的模板创建导出word文档 .zip

    将XML数据绑定到FTL模板,需要理解FreeMarker的语法,如`&lt;#assign&gt;`用于变量赋值,`${}`用于表达式输出,`&lt;#if&gt;`、`&lt;#else&gt;`进行条件判断等。在模板中定义好逻辑结构后,Java程序会根据XML数据动态填充内容。 7. *...

    FreeMarker教程 ftl

    通过阅读《FreeMarker教程全》.pdf,你可以深入探究FreeMarker的工作原理,掌握如何创建有效的FTL模板,以及如何在实际项目中应用FreeMarker进行Web开发。同时,实践是检验理论的最好方式,建议边学习边编写模板,...

    4ftl数值计算和默认value以及value转换1

    FreeMarker (FTL) 是一个模板引擎,常用于前端与后端数据的渲染。它提供了丰富的功能,包括数值计算、默认值处理、类型转换以及字符串操作。以下是对这些知识点的详细说明: 1. **FTL 正则表达式计算**: 在 FTL ...

    可用的ftl文件压缩包

    FTL,全称为FreeMarker Template ...综上所述,这个"可用的ftl文件压缩包"很可能是用于演示、教学或实际项目中的FTL模板集合,你可以通过学习和理解这些文件,进一步掌握FTL模板语言的使用,提升你的Java Web开发能力。

    freemark模板导出PDF

    - **准备FreeMarker模板**:创建一个FTL(FreeMarker Template Language)文件,定义好需要动态填充的数据区域。 - **构建数据模型**:在Java代码中准备数据,这可以是任何类型,如List、Map等,只要FreeMarker...

    基于java根据模板动态生成PDF文件

    本主题聚焦于使用Java编程语言,结合特定的库或框架,根据预定义的模板来动态生成PDF文件。以下是关于这个主题的详细知识讲解。 一、Java与PDF生成 Java作为一门广泛使用的后端开发语言,提供了丰富的库来处理PDF...

    Java生成word文档(仅一个文档模板原件和转换后缀为.ftl格式文件)

    这些数据可以是POJO(Plain Old Java Object)类的集合,或者直接是Map对象,用来映射FTL模板中的变量。 3. **配置FreeMarker**:初始化FreeMarker配置对象,加载.ftl模板文件,并设置数据模型。这一步涉及配置...

    mybatis-plus自定义模板.zip

    这些模板通常位于`templates`目录下,包括实体类模板、Mapper接口模板、Mapper XML文件模板等。例如,在这个压缩包中,可能就包含了这些模板文件。 1. **自定义实体类模板**:默认的实体类模板可能无法满足所有需求...

    FTL 编辑器

    3. **错误检查和调试**:能够实时检测语法错误,定位并修复问题,同时可能支持FTL模板的调试功能。 4. **格式化和缩进**:自动格式化代码,保持良好的代码风格,使文件更易于阅读。 5. **模板预览**:可以实时预览...

    基于XML模板的word导出实例

    接下来,我们需要创建一个FTL模板,该模板定义了Word文档的布局和样式。FTL模板中的指令会根据XML数据动态生成内容。以下是一个简单的FTL模板示例: ```ftl 姓名:${user.name} 年龄:${user.age} ...

    freemarker语法完整版

    ### Freemarker语法完整版知识点详解 #### A....通过以上详细解释,读者可以更好地理解Freemarker的核心概念、指令用法以及一些常见的技巧和注意事项,从而更高效地使用Freemarker进行模板渲染工作。

    Java freemarker 模板生成word动态表格

    1. **FreeMarker模板引擎**:FreeMarker是一个独立于任何Web框架的Java库,它的主要任务是将模板(.ftl文件)和数据模型结合起来,生成文本输出。模板语言是声明式的,这意味着你只需要描述“应该怎样显示”,而不是...

Global site tag (gtag.js) - Google Analytics