`

freemarker使用

阅读更多

 

public class ExportHtmlUtil {

 

private static Configuration cfg;

 

    static{

        cfg = new Configuration();

    }

 

/**

* 通过freemark生成html文件 

* @param rootPath  文件生成后保存路径

* @param templetName  模板名字  ftl 文件

* @param genFileName  生成文件名字

* @param listLecture  参数

* @return

*/

public static boolean genFileByFtl(String templetDir, String  templetName ,String genFileName, List  listParam ){

 

//取得工程classes的目录 作为ftl模板的目录

File dir = new File(ExportHtmlUtil.class.getClassLoader().getResource("/").getPath() );

 

Writer out = null;

try {

//加载模板存放目录

cfg.setDirectoryForTemplateLoading( dir );

//模板中传递参数

       Map<String, Object> root = new HashMap<String, Object>();

       root.put("listUser", listParam );

       

//Template t = cfg.getTemplate(ExportHtmlUtil.class.getClassLoader().getResource("/").getPath()+templetName );

Template t = cfg.getTemplate( templetName );

out = new OutputStreamWriter(new FileOutputStream( genFileName ), "UTF-8");

 

t.process(root, out);

out.flush();

out.close();

} catch ( Exception e) {

 e.printStackTrace();

 return false;

}finally{

try {

if(out!=null){

out.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

 

 

return true;

}

}

 

---------------------------

 

public String downloadHtml()  {

FileInputStream fis = null;

OutputStream os =null;

try {

listLectureNote = lectureMng.getOneLecture(videoId,innerCwareID ,versionP );

List list = new ArrayList();

User user = new User();

user.setId(1);

user.setName("123");

user.setRealname("小王");

user.setAge(24);

String path = this.getRequest().getRealPath("/");

ExportHtmlUtil.genFileByFtl(path ,"entity.ftl"  , path+File.separator+"user.html" , list);

 

HttpServletResponse response = this.getResponse();

response.setContentType("application/x-download");//设置为下载application/x-download

response.addHeader("Content-Disposition","attachment;filename=user.html");

fis = new FileInputStream(new File(path+File.separator+"user.html" ));

os = this.getResponse().getOutputStream() ;

byte[] bs = new byte[1024];

int len;

while(   (len = fis.read(bs, 0,  bs.length ))!=-1){

os.write(bs , 0, len);

}

os.flush();

os.close();

fis.close();

} catch ( Exception e) {

e.printStackTrace();

}finally{

try {

if(os!=null){

os.close();

}

if(fis!=null){

fis.close();

}

} catch (IOException e) {

e.printStackTrace();

}

 

}

 

 

return null;

}

---------------------------------------------------

<#list listUser as user>

${r"<!--"} NodeText(${user.id!""},${user.name!""},${user.age!""}); ${r"-->"}

${user.realname!""}

${r"<!--"} NodeTextEnd();${r"-->"}

</#list>

分享到:
评论

相关推荐

    超强freemarker使用总结,有示例有讲解,可做快速查询手册!!

    ### Freemarker 使用总结与详解 #### 一、Freemarker 概述 Freemarker 是一种用于生成动态页面的模板引擎。它不依赖任何 Web 容器,可以在任何 Java 应用程序中使用。Freemarker 的核心优势在于其简单易学且功能...

    FreeMarker使用手册20191218.pdf

    FreeMarker是一款开源的模板引擎,主要用于生成文本输出。它是用Java编写的,不过也能够用其他编程语言来...这些内容共同构成了FreeMarker使用手册的核心知识点,帮助开发者有效地利用FreeMarker生成所需的文本输出。

    freemarker使用手册 尚学堂教材

    尚学堂提供的这本“Freemarker使用手册”是学习和理解这个模板语言的重要参考资料。以下将详细介绍Freemarker的核心概念、语法以及在实际开发中的应用。 1. **核心概念** - **模板(Templates)**:Freemarker模板是...

    freemarker使用例子.txt

    ### Freemarker 使用例子详解 #### 一、Hashes(散列)操作 在Freemarker模板语言中,散列(Hashes)是一种非常常见的数据结构,它可以用来存储键值对。这种数据结构非常适合用于需要根据特定键来快速查找或更新值...

    Freemarker使用指南_中文版文档

    FreeMarker 是一个用Java语言编写的模板引擎,它基于模板输出文本。FreeMarker 与 Web 容器无关,即在Web运行时,它并不知道 Servlet 或 HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java ...

    FreeMarker使用Macro实例

    FreeMarker使用Macro实例,很好的学习资料。

    Spring+Freemarker 使用163发HTML格式的邮件

    标题 "Spring+Freemarker 使用163发HTML格式的邮件" 描述的是一个使用Spring框架结合Freemarker模板引擎发送HTML格式邮件的过程。在这个场景中,开发人员可能需要通过编程方式向用户发送包含丰富格式内容的邮件,...

    Freemarker使用

    ### Freemarker使用详解 Freemarker是一款功能强大的模板引擎,被广泛应用于Web开发中,用于动态生成HTML页面、邮件模板、报表等。它的设计目的是为了更高效、灵活地处理数据模型,并将其转换为最终的输出格式。...

    FreeMarker 使用

    **FreeMarker 使用详解** FreeMarker 是一款开源的模板引擎,主要应用于 Java 平台,用于生成动态 HTML、XML 或其他格式的文本。它与 Spring 框架结合使用时,可以方便地生成视图层内容,是MVC架构中常用的模板技术...

    FreeMarker使用介绍

    ### FreeMarker使用详解 #### 一、快速入门:模板+数据模型=输出 FreeMarker是一种强大的模板引擎,专为Web开发设计,它基于一个核心理念:设计者和程序员应专注各自的专业领域,即设计者负责视觉表现,如HTML、...

    freemarker使用示例源码.zip

    freemarker使用示例源码

    freemarker使用文档

    FreeMarker是一款模板引擎,即一种基于模板处理文本的技术...以上是FreeMarker使用文档的主要知识点。由于文档的篇幅限制,无法详细展示每一节的全部内容,但通过这些要点能够了解FreeMarker的基本使用方法和高级特性。

    freemarker 教程 使用手册

    2. 数据模型设置:通过`ModelAndView`或`Map`将Java对象传递到视图,供Freemarker使用。 3. 视图解析:配置`ViewResolver`,例如`FreemarkerViewResolver`,确定模板路径和渲染逻辑。 四、Freemarker高级特性 1. ...

    freemarker 自定义freeMarker标签

    FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件判断和循环。然而,这些默认标签可能无法满足所有复杂的场景,因此自定义标签就显得尤为必要。 自定义FreeMarker标签通常涉及...

    FreeMarker(使用方法)

    ### FreeMarker 使用方法详解 #### 一、FreeMarker 概述与特性 ##### 1.1 通用目标 - **生成各种文本**:FreeMarker 的核心功能在于它能生成多种类型的文本输出,包括但不限于 HTML、XML、RTF、Java 源代码等。 -...

    freemarker-2.3.28.jar

    1. **模板语言FTL**: Freemarker使用的模板语言叫做FreeMarker Template Language (FTL),它是一种声明式的、非过程式的语言。FTL文件包含了一系列的指令和表达式,用于生成最终输出。例如,`&lt;#if&gt;`、`&lt;#foreach&gt;`、...

    java使用freemarker模板技术导出word

    Java 使用 FreeMarker 模板技术导出 Word 是一种常见的数据动态生成文档的方法,它结合了 Java 的编程能力和 FreeMarker 模板引擎的强大功能,能够帮助开发者高效地生成结构化的 Word 文档。FreeMarker 是一个开源的...

    Freemarker2.3.16_带简单教程

    1. **基本语法**:Freemarker使用简单的模板语言,主要包括变量表示(${})、控制结构(if/else、foreach)、条件表达式(?)和函数调用(例如,日期和时间的格式化)。 2. **模板设计模式**:如如何定义模板布局,...

    freemarker-2.3.22

    1. **模板语言**:Freemarker使用简单的文本模板语言,其中包含指令和表达式。例如,`&lt;#if&gt;`、`&lt;#foreach&gt;`用于控制流,`${}`用于输出变量。 2. **数据模型**:Freemarker与Java对象交互,通过数据模型将Java对象...

Global site tag (gtag.js) - Google Analytics