`

freemarker基于web的入门例子

阅读更多
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
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;

public class GenerateHtml extends HttpServlet {

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		Configuration cfg = new Configuration();
		cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");
		cfg.setEncoding(Locale.getDefault(), "UTF-8");
		
		try {
			Map root = new HashMap();
			List<User> users = new ArrayList<User>();
			User u1 = new User();
			u1.setId("123");
			u1.setName("王五");
			users.add(u1);
			User u2 = new User();
			u2.setId("2345");
			u2.setName("张三");
			
			User u3 = new User();
			u3.setId("fgh");
			u3.setName("王八");
			users.add(u2);
			users.add(u3);
			
			root.put("userList", users);
			Map product = new HashMap();
			root.put("lastProduct", product);
			product.put("url", "http://www.google.com");
			product.put("name", "green hose");
			Template template = cfg.getTemplate("test.ftl", "UTF-8");
			template.setEncoding("UTF-8");
			String htmlPath = this.getServletContext().getRealPath("/html")+"/"+"form.html";
			File htmlFile = new File(htmlPath);
			if(!htmlFile.exists()){
				//System.out.println("file exist");
				htmlFile.createNewFile();
			}
			Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile),"UTF-8"));
			template.process(root, out);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (TemplateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		String url = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+req.getContextPath()+"/html/form.html";
		resp.sendRedirect(url);
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doPost(req, resp);
	}

	@Override
	public void init() throws ServletException {
		
	}

}

 

分享到:
评论

相关推荐

    FreeMarker 简单的入门小小小小例子

    俗话说万事开头难,这句话对于我们程序员来说非常的适用,刚接触一门新的东西,...FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序

    JFinal+Maven+FreeMarker入门实例

    本篇将深入探讨如何使用`JFinal`、`Maven`和`FreeMarker`构建一个入门级的Web应用程序。首先,我们要理解这三个关键组件的作用和它们之间的协同工作方式。 **JFinal** 是一个基于Java的轻量级Web开发框架,其核心...

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

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

    IDEA+Maven+SpringBoot之Web入门(freemarker,jsp)

    在这个项目中,我们将深入探讨如何在IntelliJ IDEA(IDEA)环境中,结合Maven构建工具,利用SpringBoot来创建一个Web入门应用,其中包括对Freemarker模板引擎和JSP(JavaServer Pages)的支持。 首先,IDEA作为一款...

    Freemarker入门实例

    在上述的Freemarker入门实例中,我们看到一个简单的`product.ftl`模板文件,其中包含HTML结构以及`${...}`包围的Freemarker表达式。这些表达式在运行时会被对应的数据模型中的值替换。例如,`${user}`和`${...

    FreeMarker 快速入门 上手

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

    FreeMarker入门之一:say hello world

    在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...

    Servlet + Freemarker 入门练习

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

    freemarker入门实例(解决乱码eclipse/java/编码方式UTF-8)

    本实例将引导你入门Freemarker,解决在Eclipse环境下使用Java编译时可能出现的乱码问题,并确保使用UTF-8编码方式进行处理。 **1. Freemarker简介** Freemarker是一个基于模板的开源Java库,它与Spring MVC、Struts...

    FreeMarker教程+快速入门

    本教程旨在帮助初学者快速掌握FreeMarker的基本概念和使用方法,通过详实的讲解与实例相结合的方式,让你能够轻松上手。 1. **FreeMarker基础** - **定义**:FreeMarker是一个Java模板语言,它将数据模型与视图...

    freemarker项目(从入门到与struts2结合)

    **入门FreeMarker:** 1. **安装与配置**:FreeMarker是一个轻量级库,可以通过Maven或Gradle等构建工具引入到Java项目中。配置主要涉及设置模板目录和配置文件`freemarker.properties`,其中定义了FreeMarker的行为...

    freemarker入门demo

    本教程将通过一个基础的"freemarker入门demo",帮助你理解Freemarker的工作原理和基本用法。 首先,让我们了解一下Freemarker模板语言(FTL)。FTL是Freemarker Template Language的缩写,它是一种声明式的标记语言...

    freeMarker学习入门

    在这个例子中,`${user}`、`${latestProduct.url}`和`${latestProduct.name}`是FreeMarker指令,它们将被数据模型提供的具体值所替换。数据模型是由程序员创建的,它可以包含来自数据库、文件或者程序内部生成的数据...

    FreeMarker入门指南API文档(中文版)

    本指南主要针对FreeMarker 2.3.23版本,提供详细的API文档和入门教程。 在开始之前,你需要了解FreeMarker的基本概念:模板(Template)和数据模型(Data Model)。模板是包含静态文本和变量的文件,变量会被数据...

    springmvc的入门例子

    这个入门例子是为初学者设计的,旨在帮助他们快速理解和上手Spring MVC。 首先,我们需要理解Spring MVC的基本组件: 1. **DispatcherServlet**:这是Spring MVC的核心组件,作为前端控制器接收所有的HTTP请求,并...

    FreeMarker实例教程,手把手教你FreeMarker的方方面面

    ### FreeMarker实例教程知识点详解 #### 一、FreeMarker简介 **FreeMarker**是一款功能强大的模板引擎,主要用于生成文本输出,如HTML页面、电子邮件、配置文件等。它被广泛应用于Web开发领域,能够帮助开发者轻松...

    Springmvc入门实例

    Spring MVC 是一个基于 Java 的模型-视图-控制器(MVC)架构,是 Spring 框架的一部分,用于构建Web应用程序。它提供了丰富的功能,如请求处理、数据绑定、异常处理等,使得开发者能够更高效地开发企业级Web应用。...

    freemarker学习资料汇总

    这份教程可能以实例驱动的方式,通过实际的Web项目场景来教授Freemarker的用法。它可能会涵盖如何在Spring MVC或其它框架中集成Freemarker,以及如何在模板中进行复杂逻辑处理。此外,还可能讲解Freemarker的模板...

    freemarker 入门资料

    Freemarker是一款强大的模板引擎,主要用于生成动态HTML或其他文本格式的输出,尤其在Web开发中广泛应用。它与Java紧密集成,常被...通过深入学习提供的入门资料,你将能够熟练地掌握并运用Freemarker进行高效开发。

    Spring MVC入门实例

    我们的入门实例名为 "HelloWeb",它将展示如何创建一个简单的 "Hello, World!" 页面。 1. 创建一个名为 `HelloController` 的 Java 类,使用 `@Controller` 注解标记为 Spring MVC 控制器,并定义一个返回 "Hello, ...

Global site tag (gtag.js) - Google Analytics