热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

freemarker实例2

下面演示一个简单的使用项目过程:1.使用myeclipse创建一个web项目testFM2.把下载到的jar包(freemarker-2.3.9.jar)放到WebRootWE

下面演示一个简单的使用项目过程:
1. 使用myeclipse创建一个web项目testFM
2.
把下载到的jar包(freemarker-2.3.9.jar)放到/WebRoot/WEB-INF/lib目录下。下载地址:http://freemarker.sourceforge.net/freemarkerdownload.html (注:官方网站.org的经常打不开)
3.
在WebRoot下面新建templates文件包,然后在里面新建扩展名为ftl的模板。
a)
创建hello.ftl内容如下:





hello
${user}!



4. 在src目录下创建example包 和Hello.java文件,代码如下:
package example;
import
java.io.*;
import java.util.*;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import freemarker.template.*;

public class Hello extends HttpServlet{
private Configuration
cfg;

public void init()
{
  
//初始化FreeMarker配置
       
//创建一个Configuration实例
        cfg = new
Configuration();
       
//设置FreeMarker的模版文件位置
  
cfg.setServletContextForTemplateLoading(getServletContext(),"templates");
}

public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
  
//建立数据模型
   Map root = new HashMap();
   //放入对应数据key
value
   root.put("user","csdn");
  
//取得模版文件
   Template t
=cfg.getTemplate("hello.ftl");
  
//开始准备生成输出
       
//使用模版文件的charset作为本页面的charset
       
//使用text/html MIME-type
       
response.setContentType("text/html; charset=" +
t.getEncoding());
   PrintWriter out =
response.getWriter();
  
  
//合并数据模型和模版,并将结果输出到out中
   try
  
{
    t.process(root,out);//
用模板来开发servlet可以只在代码里面加入动态的数据
   }
  
catch(TemplateException e)
   {
    throw new
ServletException("处理Template模版中出现错误", e);
   }
}
}

5.配置web.xml 代码如下:


version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

   
Hello
   
example.Hello


   
Hello
   
*.do


     
index.html

6.在WebRoot下面新建引导页面index.html,代码如下:




charset=utf-8">


点击下面链接看看效果:



href="hello.do">调用Hello模板 

7.把testFM项目部署到tomcate并启动服务。
8.打开浏览器,输入地址:http://localhost:8080/testFM/
9.点击调用Hello模板
链接,如果出现hello csdn!则说明模板调用成功了!

freemarker实例2,布布扣,bubuko.com


推荐阅读
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 探讨如何在映射文件中处理重复的属性字段,以避免数据操作时出现错误。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文介绍了如何在AngularJS应用中使用ng-repeat指令创建可单独点击选中的列表项,并详细描述了实现这一功能的具体步骤和代码示例。 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • JavaScript 页面卸载事件详解 (onunload)
    当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 在日常生活中,支付宝已成为不可或缺的支付工具之一。本文将详细介绍如何通过支付宝实现免费提现,帮助用户更好地管理个人财务,避免不必要的手续费支出。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 本文详细介绍了iOS应用的生命周期,包括各个状态及其转换过程中的关键方法调用。 ... [详细]
  • 项目风险管理策略与实践
    本文探讨了项目风险管理的关键环节,包括风险管理规划、风险识别、风险分析(定性和定量)、风险应对策略规划及风险控制。旨在通过系统的方法提升项目成功率,减少不确定因素对项目的影响。 ... [详细]
author-avatar
jzcpojwmds_652
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有