`
ysen
  • 浏览: 122212 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Web应用中使用FreeMarker生成html页面

阅读更多

 

Web应用中使用FreeMarker跟在Java程序中使用并没有太大的区别.下面是一个在Web中使用的例子,用来生成HTML页面的模板文件内容如下:

 

 

 

我们在Web应用中使用FreeMarker,应该让Servlet来合并模板和数据,因此,Servlet负责创建Configuration实例,并负责合并模板和数据,下面是Servlet源代码:

 

 

 import java.util.*;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import freemarker.template.*;

 

public class HelloServlet extends HttpServlet

{

    private Configuration cfg; 

    public void init() 

{

        //初始化FreeMarker配置

        //创建一个Configuration实例

        cfg = new Configuration();

        //设置FreeMarker的模版文件位置

        cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");

    }

    

    public void service(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException

{        

        //建立数据模型

        Map root = new HashMap();

        root.put("message", "Hello FreeMarker!");     

        //取得模版文件

        Template t = cfg.getTemplate("test.ftl");        

        // 开始准备生成输出

        // - 使用模版文件的charset作为本页面的charset

        // - 使用text/html MIME-type

        response.setContentType("text/html; charset=" + t.getEncoding());

        Writer out = response.getWriter();

        

        //合并数据模型和模版,并将结果输出到out中

        try

   {

            t.process(root, out);

        } 

   catch (TemplateException e)

   {

            throw new ServletException("处理Template模版中出现错误", e);

        }

    }

}

 

 

 

 

 

 

 

 

 

可以看到这个Servlet类的代码与普通的Java程序中使用FreeMarker大致一样,区别有两个:1,设置FreeMarker加载模板的方法不一样,Servlet中设置加载的方法是setServletContextForTemplateLoading,第一个参数是本web应用的ServletContext,第二个参数是模板文件的路径.;2,结果必须输出到HttpServletResponse,才能被浏览器加载.

配置Servletweb.xml文件中的代码如下:

<web-app>

<servlet>

   <servlet-name>hello</servlet-name>

   <servlet-class>ysen.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

   <servlet-name>hello</servlet-name>

   <url-pattern>/hello</url-pattern>

</servlet-mapping>

</web-app>

0
2
分享到:
评论
1 楼 arantam 2010-04-28  
朋友,你这样只是把ftl填充数据后作为view返回给浏览器.请问,生成的html文件在哪里呢?

相关推荐

    使用FreeMarker生成Html静态文件

    标题“使用FreeMarker生成Html静态文件”暗示了我们将探讨如何利用FreeMarker将动态数据转化为静态的HTML页面。这一过程通常涉及以下几个步骤: 1. **配置FreeMarker**: 首先,我们需要在Java项目中引入FreeMarker...

    freeMarker生成html实用例子

    这个"freeMarker生成html实用例子"很可能是提供了一些实际应用FreeMarker模板语言来生成HTML页面的示例代码。下面我们将深入探讨FreeMarker的核心概念、如何使用它以及其在生成HTML中的优势。 1. **FreeMarker核心...

    springboot整合freemarker生成静态html的demo.zip

    在本项目"springboot整合freemarker生成静态html的demo.zip"中,我们将探讨如何将SpringBoot框架与FreeMarker模板引擎结合,以实现动态数据驱动的静态HTML页面生成。FreeMarker是一个强大的、开源的模板语言,它允许...

    freemarker生成静态html示例

    Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的文本文件。它采用声明式编程方式,使得开发者可以专注于数据模型,而不用关心如何呈现这些数据。本示例项目是在Eclipse环境中创建的一个...

    FreeMarker教你如何生成html静态页面源码

    它与Java紧密集成,广泛应用于Web应用的视图层,帮助开发者将数据模型与页面展示分离,提高开发效率和代码可维护性。 在Web开发中,生成HTML静态页面源码是一个常见的需求。静态页面可以提供更快的加载速度和更好的...

    实用方便freemarker.jar freemarker架包 freemarker生成excel、word、html、xml例子

    在Web开发中,FreeMarker常用于生成动态HTML页面。首先,创建一个HTML模板,其中包含`${}`内的变量,这些变量将在运行时被Java对象的属性值替换。然后,创建一个Java类,设置需要的数据模型,并使用`...

    freemarker生成静态网页

    Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的文本文件。它以简洁的语法和灵活的功能著称,使得开发者可以专注于数据的处理,而不用关心页面的呈现细节。本篇文章将深入探讨如何使用...

    使用freemarker把jsp生成html页面

     FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序  虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据.... ...

    freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子

    3. **生成HTML**:这是Freemarker最常用的功能之一,它广泛应用于Web应用的视图层,将后台数据与HTML模板结合,动态生成网页。开发者创建HTML模板,用`&lt;#...&gt;`标签定义控制逻辑,`${...}`插入变量,然后使用...

    SpringBoot+JPA+Freemarker 生成动态SQL

    在IT行业中,SpringBoot、JPA(Java Persistence API)和Freemarker是常见的开发工具和技术,它们在构建高效、灵活的Web应用时发挥着重要作用。本篇将详细讲解如何利用这些技术来生成动态SQL。 首先,SpringBoot是...

    使用freemarker生成controller service impl pojo dao mapper

    在Java Web开发中,它被广泛应用于自动生成代码,减少重复的手动编写工作,提高开发效率。本篇将深入探讨如何使用FreeMarker来生成一套完整的MVC流程,包括Controller、Service、Impl、PageModel、DAO以及Mapper。 ...

    freemarker 中文乱码解决

    在处理Freemarker模板引擎时,中文乱码问题是一个常见的挑战,尤其是在国际化应用中。Freemarker是一款功能强大的...通过上述方法,可以有效地解决Freemarker中出现的中文乱码问题,提高Web应用的稳定性和用户体验。

    在struts2中使用freemarker模版

    例如,当用户访问`test.action`时,Struts2会找到对应的`index.ftl`模板,结合Action中的数据生成HTML页面并返回给客户端。这种做法保证了安全性和良好的架构设计,使得开发者可以专注于业务逻辑,而不用关心视图的...

    Java html转word 使用FreeMarker

    当我们需要在Web应用中生成可编辑的文档或者将网页内容导出为Word格式时,`FreeMarker`是一个非常实用的工具。这个标题“Java html转word 使用FreeMarker”暗示了一个Java项目,它利用FreeMarker模板引擎来实现HTML...

    Struts2整合Freemarker生成静态页面

    以上就是Struts2整合Freemarker生成静态页面所涉及的主要知识点。通过熟练掌握这些,开发者可以有效地构建动态、高性能的Web应用。在提供的链接中,可能有更具体的示例和教程,帮助你深入理解和实践这一技术。

    springmvc+mybatis 和一个简单的freemarker代码生成工具

    FreeMarker与SpringMVC和MyBatis结合,可以在后台生成动态的视图,比如表单、列表等,使得开发者能快速地构建Web应用的前端页面。 现在,让我们来看一下如何将这三个技术整合在一起。在SpringMVC中,我们可以配置...

    freemarker导出doc及docx

    在Web应用中,通常用于生成动态HTML页面。但Freemarker并不仅限于此,它也可以用于生成各种类型的文档,如Word文档(.doc, .docx)。 **2. SpringBoot整合Freemarker** SpringBoot简化了Freemarker的集成。在...

    freemarker中文API手册

    * Web应用程序:FreeMarker可以用来生成HTML Web页面,特别是基于MVC模式的应用程序。 * 非Web应用程序:FreeMarker也可以应用于非Web应用程序环境,如生成XML、RTF、Java源代码等。 * 模板引擎:FreeMarker可以作为...

    freemarker生成静态HTML例子

    Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的文本文件。它采用声明式编程方式,使得开发者可以专注于数据模型,而不用关心如何呈现这些数据。本示例将详细介绍如何使用Freemarker生成...

Global site tag (gtag.js) - Google Analytics