博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Freemarker 入门示例
阅读量:4967 次
发布时间:2019-06-12

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

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

 

新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar,在WEB-INF下新建文件夹templates用于存放模版文件

在templates下新建test.ftl,这是示例模版文件。内容就是HTML内容,里面带有一个标记符,用于将来进行变量替换,内容如下:

 

          freemarker测试                

${message},${name}

  新建一个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作为本页面的charset34         // 使用text/html MIME-type35         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 
2
6
7
hello
8
9 com.test.servlet.HelloFreeMarkerServlet10
11
12
13
hello
14
/hello
15
16
17
index.jsp
18
19

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

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>      <%    String mypath = "hello";    response.sendRedirect(basePath + mypath);    %>  

部署工程到Tomcat,启动并访问xx。

转载于:https://www.cnblogs.com/go-skill/p/5458095.html

你可能感兴趣的文章
SQLite移植手记1
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
js 基础拓展
查看>>
C#生成随机数
查看>>
Android应用程序与SurfaceFlinger服务的连接过程分析
查看>>
Java回顾之多线程
查看>>
机电行业如何进行信息化建设
查看>>
9、总线
查看>>
Git 笔记 - section 1
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>
DataTable和 DataRow的 区别与联系
查看>>