freemarker的使用

1:freemarker eclipse插件安装方法:http://freemarker.org/editors.html,注意eclipse版本

 

2: 基本使用

   

<dependencies>
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
			<version>2.3.9</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
		</dependency>
</dependencies>

 就依赖一个包;在resources下放一个test.ftl文件

 

3: 简单的java封装

   BaseServlet:

public class BaseServlet extends HttpServlet {

    private static final long serialVersionUID=1L;

    protected FreemarkUtil freemarkUtil;

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        HttpServletResponse response=(HttpServletResponse)res;
        freemarkUtil=FreemarkUtil.getInstance(response);
        super.service(req, res);
    }
}

 

FreemarkUtil.java:

   

public class FreemarkUtil {

    private static FreemarkUtil instance;

    private Configuration cfg;

    private HttpServletResponse response;

    private FreemarkUtil(HttpServletResponse response) {
        try {
            cfg=new Configuration();
            String dir=Test.class.getResource("/").getPath();
            System.out.println(dir);
            cfg.setDirectoryForTemplateLoading(new File(dir));
            cfg.setObjectWrapper(new DefaultObjectWrapper());
            this.response=response;
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static FreemarkUtil getInstance(HttpServletResponse response) {
        if(instance == null) {
            instance=new FreemarkUtil(response);
        }
        return instance;
    }

    public void process(Map<String, ?> data, String name) throws Exception {
        Template template=cfg.getTemplate(getName(name));
        Writer out=response.getWriter();
        template.process(data, out);
        out.flush();
    }

    private String getName(String name) {
        if(name == null) {
            return null;
        }
        if(name.indexOf(".ftl") > -1) {
            return name;
        } else {
            return name + ".ftl";
        }
    }
}

 

TestServlet.java:

    

package com.freemark.test;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class TestServlet
 */
public class TestServlet extends BaseServlet {

    private static final long serialVersionUID=1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String uri=request.getRequestURI();
        if(uri.indexOf("test/") > -1) {
            System.out.println("--test -- here------");
            Map<String, Object> model=new HashMap<String, Object>();
            model.put("test", "welcome to use freemark ljq");
            try {
                freemarkUtil.process(model, "test");
            } catch(Exception e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("error uri = " + uri);
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }

}

 

 web.xml:

    

	<servlet>
		<servlet-name>test</servlet-name>
		<servlet-class>com.freemark.test.TestServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>test</servlet-name>
		<url-pattern>/test/*</url-pattern>
	</servlet-mapping>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值