博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FreeMarker使用小记(HelloWorld)
阅读量:6374 次
发布时间:2019-06-23

本文共 2773 字,大约阅读时间需要 9 分钟。

FreeMarker是开源的模板框架。对于它的介绍网上已经很多了。详情可参考

主页:http://www.freemarker.org/
  现在我们就开始我们的FreeMarker版的Hello World之旅吧。

1.去下载 最新的FreeMarker.我下载的是 Download freemarker-2.3.13

2.解压你下载的freemarker-2.3.13。
3.新建一web工程。我是MyEclipse下做的。把freemarker-2.3.13/lib目录下的
所有jar文件都复制到你建的web工程的lib目录下。

4.在WEB-INF目录下建一文件夹templates,然后在这个文件夹里面新建一个模板文件 test.ftl

  你的自定义模板          ${message}      :${username}    
View Code

5.建一个HelloServlet:

package com;import java.io.IOException;import java.io.PrintWriter;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 HelloServlet extends HttpServlet{    private Configuration cfg = null;    @Override    public void init() throws ServletException    {        // FreeMarker程序入口点        cfg = new Configuration();        // 初始化Servlet上下文(第二参数为ServletContext的相对路径,null代表当前网站根路径,相对路径)        cfg.setServletContextForTemplateLoading(this.getServletContext(), null);        /***********************************************************************         * *cfg.setServletContextForTemplateLoading(this.getServletContext(),         * "WEB-INF"); 如果设置成WEB-INF相应的获模板时需要改成Template t =         * cfg.getTemplate("/templates/test.ftl");         **********************************************************************/    }    @SuppressWarnings("unchecked")    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException    {        // 模板文件会根据key,读取value        Map root = new HashMap();        root.put("message", "您好!");        root.put("username", "编程爱好者");        Template t = cfg.getTemplate("WEB-INF/templates/test.ftl");        resp.setCharacterEncoding("utf-8");        PrintWriter out = resp.getWriter();        try        {            t.process(root, out);        } catch (TemplateException e)        {            e.printStackTrace();        }    }    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException    {        this.doPost(req, resp);    }}
View Code

6.web.xml中的相应配置:

testServlet
com.HelloServlet
testServlet
/hello
index.jsp
View Code

7.启动浏览器访问:http://localhost:8888/freemarker/hello

您会看到:
您好! :编程爱好者

好了,你的第一个Freemarker版的HelloWorld已经成功完成了。

 

转载地址:http://orjqa.baihongyu.com/

你可能感兴趣的文章
Resolve PSExec "Access is denied"
查看>>
C语言局部变量和全局变量问题汇总
查看>>
android 下的网络图片加载
查看>>
由浅入深探究mysql索引结构原理、性能分析与优化
查看>>
Paip.语义分析----情绪情感词汇表总结
查看>>
Linux下软件安装,卸载,管理
查看>>
基于注解风格的Spring-MVC的拦截器
查看>>
oracle加密-des 简单举例.
查看>>
翻译:SockJS-node文档(一)
查看>>
MySQL中DATE_FORMATE函数内置字符集解析
查看>>
View Programming Guide for iOS_读书笔记[正在更新……]
查看>>
排查VMWare虚拟机的性能问题
查看>>
走在网页游戏开发的路上(十一)
查看>>
yum安装Apache Web Server后各个文件存放位置
查看>>
【ASP.NET Web API教程】3.4 HttpClient消息处理器
查看>>
一些基础密码算法的实现
查看>>
阿尼玛
查看>>
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
查看>>
Android于JNI调用列出的程序
查看>>
CSS3-border-radius 属性
查看>>