http://cuisuqiang.iteye.com/blog/2031768

************************************

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

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

  1. <html>
  2. <head>
  3. <title>freemarker测试</title>
  4. </head>
  5. <body>
  6. <h1>${message},${name}</h1>
  7. </body>
  8. </html>

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

  1. package com.test.servlet;
  2. import java.io.IOException;
  3. import java.io.Writer;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import freemarker.template.Configuration;
  11. import freemarker.template.Template;
  12. import freemarker.template.TemplateException;
  13. @SuppressWarnings("serial")
  14. public class HelloFreeMarkerServlet extends HttpServlet {
  15. // 负责管理FreeMarker模板的Configuration实例
  16. private Configuration cfg = null;
  17. public void init() throws ServletException {
  18. // 创建一个FreeMarker实例
  19. cfg = new Configuration();
  20. // 指定FreeMarker模板文件的位置
  21. cfg.setServletContextForTemplateLoading(getServletContext(),
  22. "/WEB-INF/templates");
  23. }
  24. @SuppressWarnings("unchecked")
  25. public void doPost(HttpServletRequest request, HttpServletResponse response)
  26. throws ServletException, IOException {
  27. // 建立数据模型
  28. Map root = new HashMap();
  29. root.put("message", "hello world");
  30. root.put("name", "java小强");
  31. // 获取模板文件
  32. Template t = cfg.getTemplate("test.ftl");
  33. // 使用模板文件的Charset作为本页面的charset
  34. // 使用text/html MIME-type
  35. response.setContentType("text/html; charset=" + t.getEncoding());
  36. Writer out = response.getWriter();
  37. // 合并数据模型和模板,并将结果输出到out中
  38. try {
  39. t.process(root, out); // 往模板里写数据
  40. } catch (TemplateException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. public void doGet(HttpServletRequest request, HttpServletResponse response)
  45. throws ServletException, IOException {
  46. doPost(request, response);
  47. }
  48. public void destroy() {
  49. super.destroy();
  50. }
  51. }

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <servlet>
  7. <servlet-name>hello</servlet-name>
  8. <servlet-class>
  9. com.test.servlet.HelloFreeMarkerServlet
  10. </servlet-class>
  11. </servlet>
  12. <servlet-mapping>
  13. <servlet-name>hello</servlet-name>
  14. <url-pattern>/hello</url-pattern>
  15. </servlet-mapping>
  16. <welcome-file-list>
  17. <welcome-file>index.jsp</welcome-file>
  18. </welcome-file-list>
  19. </web-app>

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

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()
  5. +":"+request.getServerPort()+path+"/";
  6. %>
  7. <html>
  8. <body>
  9. <%
  10. String mypath = "hello";
  11. response.sendRedirect(basePath + mypath);
  12. %>
  13. </body>
  14. </html>

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

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

http://cuisuqiang.iteye.com/ !

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

 
 

Freemarker 入门示例(zhuan)的更多相关文章

  1. Freemarker 入门示例

    初步学习freemarker ,先做一个简单的HelloWord程序! 新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar, ...

  2. freeMarker入门示例

    1.创建Web项目freeMarkerDemo. 2.添加jar包---freemarker-2.3.9.jar. 3.在WebContent目录下新建templates文件夹,用于放置模板文件ftl ...

  3. 1.【转】spring MVC入门示例(hello world demo)

    1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于 ...

  4. 【转】spring MVC入门示例(hello world demo)

    部分内容来自网络:<第二章 Spring MVC入门 —— 跟开涛学SpringMVC > 1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web M ...

  5. [WCF编程]1.WCF入门示例

    一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...

  6. Maven入门示例(3):自动部署至外部Tomcat

    Maven入门示例(3):自动部署至外部Tomcat 博客分类:  maven 2012原创   Maven入门示例(3):自动部署至外部Tomcat 上一篇,介绍了如何创建Maven项目以及如何在内 ...

  7. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  8. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

  9. Couchbase之个人描述及入门示例

    本文不打算抄袭官方或者引用他人对Couchbase的各种描述,仅仅是自己对它的一点理解(错误之处,敬请指出),并附上一个入门示例. ASP.NET Web项目(其他web开发平台也一样)应用规模小的时 ...

随机推荐

  1. winform——绑定DataGridView

    ==========================================================================================重点需要掌握==Au ...

  2. 分页sql

    /// <summary> /// 根据页数分页 /// </summary> /// <param name="page"></para ...

  3. 基于@AspectJ和schema的aop(二)---@AspectJ基础语法

    @AspectJ使用jdk5.0和正规的AspectJ切点表达式描述切面, 由于spring只支持方法的连接点,所以Spring只支持部分AspectJ的切点语言. 1.切点表达式函数 AspectJ ...

  4. ISO C90 forbids mixed declarations and code 警告

    编译的时候经常会遇到   ISO C90 forbids mixed declarations and code 警告百度了一下,知道是如下原因 : 变量定义之前任何一条非变量定义的语句(注意:语句是 ...

  5. 使用StarUML创建类图

    使用StarUML创建类图 http://www.flyne.org/article/379 1.综述(What) StarUML是一种生成类图和其他类型的UML图表的工具.本文是一个使用StarUM ...

  6. 在Quartus II中分配管脚的两种常用方法

    在Quartus II中分配管脚的两种常用方法 示范程序 seg7_test.v 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /* * ...

  7. Android Studio 初级安装

    最近学习安卓,很多教程都说Android Studio 好用,于是下一个来看看. 1.在安装这个工具之前需要先安装 JDK 我的环境是win7-64位. 提供一个下载地址:http://pan.bai ...

  8. Run_Product Example Form - Oracle Forms 6i

    I have already posted in my previous post Running Reports Using Run_Product to run reports in Oracle ...

  9. Create Hierarchical Tree To Control Records In Oracle Forms

    Download Source Code Providing an example form for creating hierarchical trees in Oracle Forms to co ...

  10. 如何在iOS 7.0中隐藏状态栏

    使用Cordova做了一个小项目,在原来iOS6的时候显示挺好,升级为iOS7后,每次App启动后都会显示状态栏,而且状态栏和App的标题栏重叠在一起,非常难看,因此需要将状态栏隐藏起来.   首先, ...