手机端小强原创文章,java小强个人博客站点
当前位置: 首页 >> 框架 >> Freemarker 入门示例

Freemarker 入门示例

39030 框架 | 2014-7-20

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

 

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

<html>
  <head>
        <title>freemarker测试</title>
    </head>
    <body>
        <h1>${message},${name}</h1>
    </body>
</html>

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

package com.test.servlet;
import java.io.IOException;
import java.io.Writer;
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 HelloFreeMarkerServlet extends HttpServlet {
 // 负责管理FreeMarker模板的Configuration实例
 private Configuration cfg = null;
 public void init() throws ServletException {
  // 创建一个FreeMarker实例
  cfg = new Configuration();
  // 指定FreeMarker模板文件的位置
  cfg.setServletContextForTemplateLoading(getServletContext(),
    "/WEB-INF/templates");
 }
 @SuppressWarnings("unchecked")
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // 建立数据模型
  Map root = new HashMap();
  root.put("message", "hello world");
  root.put("name", "java小强");
  // 获取模板文件
  Template t = cfg.getTemplate("test.ftl");
  // 使用模板文件的Charset作为本页面的charset
  // 使用text/html MIME-type
  response.setContentType("text/html; charset=" + t.getEncoding());
  Writer out = response.getWriter();
  // 合并数据模型和模板,并将结果输出到out中
  try {
   t.process(root, out); // 往模板里写数据
  } catch (TemplateException e) {
   e.printStackTrace();
  }
 }
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }
 public void destroy() {
  super.destroy();
 }
}

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

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>
   com.test.servlet.HelloFreeMarkerServlet
  </servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

为了方便测试,访问工程直接跳转到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+"/";
%>
<html>
  <body>
    <%
    String mypath = "hello";
    response.sendRedirect(basePath + mypath);
    %>
  </body>
</html>

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

推荐您阅读更多有关于“ 模版 入门 freemarker ”的文章

上一篇:Java 中 解压缩文件 ZIP 下一篇:UrlRewrite 简介与示例

猜你喜欢

发表评论:

个人资料
blogger

java小强
没有思考,人生的路会越走越难!

搜索
分类
最新微语
  • 不是本人但真实经历,如果你得了绝症抑或大病,能告诉的人两只手能数过来,而能一直陪床真正帮你的人,一只手就够了。也许你会说我亲戚多哥们多同学多云云,但真遇上的时候,你敢说吗?即使你说了会有人像你想的那样吗?不要尝试考验人性,人走茶凉之类的话都听过,但不遇到事我们未曾理解其中的道理。

    2018-11-07 11:05

  • 每个人的一生都是不同的,我们都需要负重前行。每一种生活都是不同的,我们都需要真实面对。所经历的,让我学会一件事,顺其自然。人,总有很多自己想要的,总有很多困难要面对,总有很多人要去爱,我们不断思考人生,却总是迷失自己。如今,我们最缺的不是金钱和时间,而是忘记了自己的初衷。

    2018-09-28 14:42

  • 车也学了,年也过了,生日也过了,村里的会也赶了,这次,是真的,年过去了。不过我没回京,也没有在家找工作,我在等什么吗?反正现在正合了我这个懒人的要求,不过,我歇不住,思考下人生。

    2018-03-20 00:11

  • 8月1日,我已离开奋斗多年的北京。不知道是暂时的离开,还是永久的离别,反正已经离职在家,告别每日上班,每天苦累的煎熬,过一段属于自己的生活。以前是专职工作,现在专职生活。

    2017-08-18 12:47

  • 又弄完一个项目,累成狗,但是感觉又进步不少,除了很多坑已经踩过,做起来也是轻车熟路。同时也认识到,程序不在于你多牛逼,而是在乎你的细节把控度,而细节的关注,是一个优秀程序员必须要注意的。另外,要相信自己,勇敢向前,没人生下来就是成功的,而且,成功的路,比成功本身更重要。

    2017-06-30 09:46

  • 更多»

最新文章
热门文章
随机文章