当前位置:首页 > 开发 > Web前端 > 前端 > 正文

Freemarker 入门示例

发表于: 2014-03-16   作者:cuisuqiang   来源:转载   浏览次数:
摘要: 初步学习freemarker ,先做一个简单的HelloWord程序!   新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar,在WEB-INF下新建文件夹templates用于存放模版文件在templates下新建test.ftl,这是示例模版文件。内容就是HTML内容,里面带有一个标记符,用于将来进行变量

初步学习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同步!

Freemarker 入门示例

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Freemarker简单入门实例 1.下载jar包地址:http://freemarker.org/ 2.将下载的jar包导入到web工程中
freeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。freeMarker与Web容器无关,
FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML格式的文本用来自动
freeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。freeMarker与Web容器无关,
以maven为例 1.首先导入freemarker依赖包。 <dependency> <groupId>org.freemarker<
struts2可以非常简单地使用FreeMarker模板作为视图技术,对于传统的jsp页面而言,FreeMarker是一个
struts2可以非常简单地使用FreeMarker模板作为视图技术,对于传统的jsp页面而言,FreeMarker是一个
struts2可以非常简单地使用FreeMarker模板作为视图技术,对于传统的jsp页面而言,FreeMarker是一个
struts2可以非常简单地使用FreeMarker模板作为视图技术,对于传统的jsp页面而言,FreeMarker是一个
struts2可以非常简单地使用FreeMarker模板作为视图技术,对于传统的jsp页面而言,FreeMarker是一个
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号