在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中,才能被浏览器加载.
配置Servlet的web.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>
分享到:
相关推荐
标题“使用FreeMarker生成Html静态文件”暗示了我们将探讨如何利用FreeMarker将动态数据转化为静态的HTML页面。这一过程通常涉及以下几个步骤: 1. **配置FreeMarker**: 首先,我们需要在Java项目中引入FreeMarker...
这个"freeMarker生成html实用例子"很可能是提供了一些实际应用FreeMarker模板语言来生成HTML页面的示例代码。下面我们将深入探讨FreeMarker的核心概念、如何使用它以及其在生成HTML中的优势。 1. **FreeMarker核心...
在本项目"springboot整合freemarker生成静态html的demo.zip"中,我们将探讨如何将SpringBoot框架与FreeMarker模板引擎结合,以实现动态数据驱动的静态HTML页面生成。FreeMarker是一个强大的、开源的模板语言,它允许...
Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的文本文件。它采用声明式编程方式,使得开发者可以专注于数据模型,而不用关心如何呈现这些数据。本示例项目是在Eclipse环境中创建的一个...
它与Java紧密集成,广泛应用于Web应用的视图层,帮助开发者将数据模型与页面展示分离,提高开发效率和代码可维护性。 在Web开发中,生成HTML静态页面源码是一个常见的需求。静态页面可以提供更快的加载速度和更好的...
在Web开发中,FreeMarker常用于生成动态HTML页面。首先,创建一个HTML模板,其中包含`${}`内的变量,这些变量将在运行时被Java对象的属性值替换。然后,创建一个Java类,设置需要的数据模型,并使用`...
Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的文本文件。它以简洁的语法和灵活的功能著称,使得开发者可以专注于数据的处理,而不用关心页面的呈现细节。本篇文章将深入探讨如何使用...
FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据.... ...
3. **生成HTML**:这是Freemarker最常用的功能之一,它广泛应用于Web应用的视图层,将后台数据与HTML模板结合,动态生成网页。开发者创建HTML模板,用`<#...>`标签定义控制逻辑,`${...}`插入变量,然后使用...
在IT行业中,SpringBoot、JPA(Java Persistence API)和Freemarker是常见的开发工具和技术,它们在构建高效、灵活的Web应用时发挥着重要作用。本篇将详细讲解如何利用这些技术来生成动态SQL。 首先,SpringBoot是...
在Java Web开发中,它被广泛应用于自动生成代码,减少重复的手动编写工作,提高开发效率。本篇将深入探讨如何使用FreeMarker来生成一套完整的MVC流程,包括Controller、Service、Impl、PageModel、DAO以及Mapper。 ...
在处理Freemarker模板引擎时,中文乱码问题是一个常见的挑战,尤其是在国际化应用中。Freemarker是一款功能强大的...通过上述方法,可以有效地解决Freemarker中出现的中文乱码问题,提高Web应用的稳定性和用户体验。
例如,当用户访问`test.action`时,Struts2会找到对应的`index.ftl`模板,结合Action中的数据生成HTML页面并返回给客户端。这种做法保证了安全性和良好的架构设计,使得开发者可以专注于业务逻辑,而不用关心视图的...
当我们需要在Web应用中生成可编辑的文档或者将网页内容导出为Word格式时,`FreeMarker`是一个非常实用的工具。这个标题“Java html转word 使用FreeMarker”暗示了一个Java项目,它利用FreeMarker模板引擎来实现HTML...
以上就是Struts2整合Freemarker生成静态页面所涉及的主要知识点。通过熟练掌握这些,开发者可以有效地构建动态、高性能的Web应用。在提供的链接中,可能有更具体的示例和教程,帮助你深入理解和实践这一技术。
FreeMarker与SpringMVC和MyBatis结合,可以在后台生成动态的视图,比如表单、列表等,使得开发者能快速地构建Web应用的前端页面。 现在,让我们来看一下如何将这三个技术整合在一起。在SpringMVC中,我们可以配置...
在Web应用中,通常用于生成动态HTML页面。但Freemarker并不仅限于此,它也可以用于生成各种类型的文档,如Word文档(.doc, .docx)。 **2. SpringBoot整合Freemarker** SpringBoot简化了Freemarker的集成。在...
* Web应用程序:FreeMarker可以用来生成HTML Web页面,特别是基于MVC模式的应用程序。 * 非Web应用程序:FreeMarker也可以应用于非Web应用程序环境,如生成XML、RTF、Java源代码等。 * 模板引擎:FreeMarker可以作为...
Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的文本文件。它采用声明式编程方式,使得开发者可以专注于数据模型,而不用关心如何呈现这些数据。本示例将详细介绍如何使用Freemarker生成...