自己搭建freemarker环境和测试代码



1.新建Dynamic web project工程。

2.起名为Freemarker

3.打开工程,在WebContent中新建index.html文件。

4.index.html中添加如下内容:

DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title heretitle>

head>

<body>

点击下面链接看看效果:

<hr>

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

body>

html>

5.Java Resource中新建包。

6.添加包名称为:com.sln.freemarker

7.在刚刚创建的包下创建类。

8.添加类名称为:Hello.java

9.Hello类中,要实现一个Servlet类,以便对Freemarker的请求进行拦截处理。

10.首先继承HttpServlet类。HttpServlet类是在servlet-api.jar中的,所以要从tomcat中引入该jar包。

11.然后复写servletinit方法。在初始化的方法中,需要初始化Freemarker模板的一些类。

私有对象Configuration类,需要引入Freemarkerjar包。

12.设置模板的路径

cfg.setServletContextForTemplateLoading(getServletContext(), "templates");

第二个参数设置了模板的路径。

13.之后复写doGet方法。

代码如下:

// 建立数据模型

      Map root = new HashMap();

      // 放入对应数据key value

      root.put("user", "zdz");

      // 取得模版文件

      Template t = cfg.getTemplate("hello.ftl");// FreeMarker会到系统的/WebRoot/templates/目录下找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);

      }

14.配置web.xml

<web-app 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">

   <servlet>

      <servlet-name>freemarkerservlet-name>

      <servlet-class>com.sln.freemarker.Helloservlet-class>

   servlet>

   <servlet-mapping>

      <servlet-name>freemarkerservlet-name>

      <url-pattern>/*.dourl-pattern>

   servlet-mapping>

web-app>

 

你可能感兴趣的:(自己搭建freemarker环境和测试代码)