Freemarker在web项目中的使用

来源:互联网 发布:好的招聘软件 编辑:程序博客网 时间:2024/05/20 20:46

1. 配置web的两种方式

package com.cupdata.zicon.servlet;import java.io.IOException;import java.io.Writer;import java.util.Arrays;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;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;/** * Servlet implementation class TestServlet */@WebServlet(name = "test", urlPatterns = "/test")public class TestServlet extends HttpServlet {private static final long serialVersionUID = 1L;private Configuration cfg;@Overridepublic void init() throws ServletException {cfg = new Configuration(Configuration.VERSION_2_3_23);cfg.setServletContextForTemplateLoading(getServletContext(),"WEB-INF/ftl");}/** * @see HttpServlet#HttpServlet() */public TestServlet() {super();// TODO Auto-generated constructor stub}/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse *      response) */protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {Map root = new HashMap();root.put("name", "中国");root.put("names", Arrays.asList("Tom", "Jack", "Rose"));Template temp = cfg.getTemplate("index.ftl");response.setCharacterEncoding("UTF-8");Writer writer = response.getWriter();try {temp.process(root, writer);} catch (TemplateException e) {e.printStackTrace();}}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse *      response) */protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub}}

package com.cupdata.zicon.servlet;import java.io.IOException;import java.io.Writer;import java.util.Arrays;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;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;/** * Servlet implementation class TestServlet */@WebServlet(name = "test2", urlPatterns = "/test2")public class TestServlet2 extends HttpServlet {private static final long serialVersionUID = 1L;/** * @see HttpServlet#HttpServlet() */public TestServlet2() {super();// TODO Auto-generated constructor stub}/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse *      response) */protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {request.setAttribute("name", "中国");request.setAttribute("names", Arrays.asList("Tom", "Jack", "Rose"));request.getRequestDispatcher("index.ftl").forward(request, response);;}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse *      response) */protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub}}
web.xml配置

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>TestServlet</servlet-name><display-name>TestServlet</display-name><description></description><servlet-class>com.cupdata.zicon.servlet.TestServlet</servlet-class></servlet><servlet><servlet-name>freemarker</servlet-name><servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class><init-param><param-name>TemplatePath</param-name><param-value>/WEB-INF/ftl</param-value></init-param><init-param><param-name>ContentType</param-name><param-value>text/html;charst=UTF-8</param-value></init-param><init-param><param-name>default_encoding</param-name><param-value>UTF-8</param-value></init-param></servlet><servlet-mapping><servlet-name>freemarker</servlet-name><url-pattern>*.ftl</url-pattern></servlet-mapping><servlet-mapping><servlet-name>TestServlet</servlet-name><url-pattern>/TestServlet</url-pattern></servlet-mapping></web-app>

模板配置

<html><head><meta charset="UTF-8"><title>freemarker-web</title></head><body>${name}<br /><#list names as name>${name} <br /></#list></body></html>



0 0