`
cuisuqiang
  • 浏览: 3962930 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3672282
社区版块
存档分类
最新评论

Freemarker 入门示例

    博客分类:
  • J2EE
阅读更多

初步学习freemarker ,先做一个简单的HelloWord程序!

 

新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar,在WEB-INF下新建文件夹templates用于存放模版文件
在templates下新建test.ftl,这是示例模版文件。内容就是HTML内容,里面带有一个标记符,用于将来进行变量替换,内容如下:

<html>
  <head>
        <title>freemarker测试</title>
    </head>
    <body>
        <h1>${message},${name}</h1>
    </body>
</html>

 

新建一个Servlet,用于请求设置变量,并处理模版的输出:

package com.test.servlet;
import java.io.IOException;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
@SuppressWarnings("serial")
public class HelloFreeMarkerServlet extends HttpServlet {
	// 负责管理FreeMarker模板的Configuration实例
	private Configuration cfg = null;
	public void init() throws ServletException {
		// 创建一个FreeMarker实例
		cfg = new Configuration();
		// 指定FreeMarker模板文件的位置
		cfg.setServletContextForTemplateLoading(getServletContext(),
				"/WEB-INF/templates");
	}
	@SuppressWarnings("unchecked")
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 建立数据模型
		Map root = new HashMap();
		root.put("message", "hello world");
		root.put("name", "java小强");
		// 获取模板文件
		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) {
			e.printStackTrace();
		}
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}
	public void destroy() {
		super.destroy();
	}
}

 

注意要在你的web.xml中配置该Servlet:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>
			com.test.servlet.HelloFreeMarkerServlet
		</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/hello</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

 

为了方便测试,访问工程直接跳转到Servlet,对主页index.jsp做一个简单修改:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()
+":"+request.getServerPort()+path+"/";
%>
<html>
  <body>
    <%
    String mypath = "hello";
    response.sendRedirect(basePath + mypath);
    %>
  </body>
</html>

 

部署工程到Tomcat,启动并访问http://localhost:8080/f ,这里我建立的工程名称就是 f 。

 

请您到ITEYE网站看 java小强 原创,谢谢!

http://cuisuqiang.iteye.com/ 

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

10
3
分享到:
评论
1 楼 wwzskyrain 2017-07-11  
页面还是jsp,怎么能叫做Freemarker入门示例呢?小强啊,写东西多用点心。
最后,起码要有个页面成功请求的截图吧!

相关推荐

    Servlet + Freemarker 入门练习

    总结来说,"Servlet + Freemarker 入门练习"涉及以下几个关键知识点: 1. **Servlet**:Java 服务器端编程,处理 HTTP 请求,实现业务逻辑。 2. **Freemarker**:模板引擎,分离视图和逻辑,生成动态 HTML。 3. **...

    一个意义深刻 FreeMarker 入门例子之HelloWord

    本示例“一个意义深刻的FreeMarker入门例子之HelloWord”旨在帮助初学者理解并掌握FreeMarker的基本用法。 在Java Web开发中,FreeMarker与后端控制器如Servlet或Spring MVC中的Controller协同工作,允许开发者将...

    JFinal+Maven+FreeMarker入门实例

    在"JFinal+Maven+FreeMarker入门实例"中,我们将看到如何配置和使用这些工具。首先,我们需要在项目根目录下创建一个`pom.xml`文件,这是Maven项目的配置文件。在这里,我们需要列出所有依赖项,包括JFinal和...

    学习FreeMarker入门文档

    ### FreeMarker入门知识详解 #### 一、FreeMarker概述 FreeMarker是一款强大的模板引擎,它以Java语言编写,主要用于生成动态HTML网页,特别是在MVC(Model-View-Controller)架构中,作为视图组件,负责将模型...

    freemarker入门代码

    Freemarker是一个强大的模板引擎,常用于Java Web开发中生成...自学过程中,建议动手实践,尝试编写简单的模板和Java代码,结合官方文档和示例,逐步掌握这个强大的模板引擎。祝你在学习FreeMarker的过程中取得成功!

    freemarker入门Demo

    以下是对`freemarker入门Demo`相关知识点的详细说明: 1. **严格的MVC分离**: Freemarker模板引擎不支持编写Java代码,这意味着开发者可以在模板文件中专注于展示逻辑,而将数据处理和业务逻辑保留在控制器和服务...

    FreeMarker入门手册

    本入门手册将帮助你了解FreeMarker的基本概念、语法以及如何在实际项目中运用。 1. **基本概念** - **模板语言**:FreeMarker是模板驱动的,它不直接处理数据,而是通过模板和数据模型结合来生成最终输出。 - **...

    FreeMarker入门指南(详细指南见附件)

    这篇《FreeMarker入门指南》将深入介绍其基本概念、语法以及在实际项目中的应用。 一、FreeMarker简介 FreeMarker是一个基于模板的Java库,用于生成文本输出。它的主要工作原理是将模板(template)与数据模型...

    freemarker入门

    ### Freemarker 入门详解 #### 一、Freemarker 概述 Freemarker 是一款功能强大的模板引擎,主要用于生成动态的 HTML 页面以及其他格式的文档。它将模板设计与后端逻辑分离,使得前端设计师可以专注于页面布局与...

    spring mvc入门示例

    6. ViewResolver(视图解析器)根据视图名找到具体的视图,如JSP、FreeMarker等。 7. 视图渲染Model中的数据,并将结果显示回给用户。 学习Spring MVC时,你需要掌握以下关键概念和技术: 1. **配置**:包括web.xml...

    freemarker入门文档

    本入门文档将带你走进Freemarker的世界,帮助你掌握其基本概念和核心功能。 1. **模板语法** Freemarker模板语言(FML)主要由变量、控制结构(如条件语句和循环)、文本、注释等组成。例如,`${expression}`用于...

    FreeMarker 快速入门 上手

    ### FreeMarker 快速入门与上手教程 #### 一、FreeMarker 概览 **FreeMarker** 是一款强大的模板引擎,主要用于生成文本输出。它适用于多种用途,如生成 HTML 页面、XML 数据、电子邮件等。FreeMarker 的一大特点...

    freemarker 入门资料

    `freemarker.doc`可能包含了Freemarker的基本概念、语法和示例,适合初学者快速上手。`freemarker中文手册.doc`则是更详尽的指南,涵盖了高级特性、最佳实践和解决常见问题的方法,对深入理解和使用Freemarker非常有...

    FreeMarker快速入门.doc

    ### FreeMarker 快速入门详解 #### 一、FreeMarker 概述 FreeMarker 是一个用 Java 编写的模板引擎,它支持动态网页的生成,同时也适用于任何纯文本格式的输出生成,例如 XML 和电子邮件等。FreeMarker 的设计初衷...

    freemarker 入门指南

    2. **freemarker.rar**:这个压缩包可能包含了Freemarker的API文档、示例模板或其他辅助学习材料,解压后可以深入研究。 学习Freemarker的过程中,实践是非常重要的。尝试创建自己的模板,结合实际项目的数据模型,...

    Spring-mvc入门示例

    在本入门示例中,我们将深入理解 Spring MVC 的核心概念和关键组件,以便初学者能够快速上手。 1. **MVC 模式** MVC 模式是一种软件设计模式,用于分离应用程序的数据模型、用户界面和业务逻辑。Model(模型)处理...

    Struts1.2 入门示例

    这个入门示例旨在帮助开发者了解如何使用Struts1.2进行基本的Web开发。 在Struts1.2框架中,控制器由ActionServlet实现,它负责接收HTTP请求,并根据配置文件(struts-config.xml)来决定哪个Action类来处理该请求...

    WebX入门指南示例程序

    本入门指南示例程序旨在帮助初学者快速理解和掌握WebX的基本用法。通过结合提供的博客文章和代码,我们将深入探讨以下几个核心知识点: 1. **WebX框架概述**: WebX是一个组件化的MVC(Model-View-Controller)...

Global site tag (gtag.js) - Google Analytics