freemarker简单入门

来源:互联网 发布:mac版cs6序列号 编辑:程序博客网 时间:2024/04/28 03:39

首先用freemarker要用到freemarker jar包。我这边是用简单的servlet做的一个简单的例子,静态化页面的类型是html。

用freemarker要用到ftl文件,这个文件是页面静态化的模板,就是<html>标签写好,你带入的数据直接填进去

equipment.ftl文件如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>武汉亿童网|亿童幼儿教育|幼儿学前教育装备|区域活动|玩教具|幼教装备</title></head><body>名字:<span>${name}</span></br>自我介绍:<span>${desc}</span></br>年龄:<span>${age}</span></br></body></html>


TestFreemarker.java文件如下:

package freemarker;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import freemarker.template.Configuration;import freemarker.template.Template;public class TestFreemarker extends HttpServlet{@Overridepublic void service(HttpServletRequest request, HttpServletResponse response){Writer out = null;Map<String,Object> map = new HashMap<String, Object>();//map是你要带入到ftl文件的数据map.put("name", "zhang");map.put("desc", "nihao");map.put("age", 23);ServletContext context = request.getServletContext();String path = context.getRealPath(File.separator);
//我这定义的静态页面类型是html,当然可以是其他类型
String savePath = path+File.separator+"public"+File.separator+"1.html";
Configuration cfg = new Configuration();//模板的配置                    //设置加载路径,第一个参数是serlvet上下文,第二个参数是ftl文件所在文件夹
cfg.setServletContextForTemplateLoading(context,"modal");                    cfg.setDefaultEncoding("UTF-8");         try {Template template = cfg.getTemplate("equipment.ftl");//equipment就是ftl文件的名字  template.setEncoding("UTF-8"); File file= new File(savePath);//确定静态的页面生成的文件路径 out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8"));  template.process(map, out);//第一个参数是数据,第二个参数是生成文件的IO流} catch (Exception e) {e.printStackTrace();} }}

web.xml文件

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><servlet><servlet-name>servlet2</servlet-name><servlet-class>freemarker.TestFreemarker</servlet-class></servlet><servlet-mapping><servlet-name>servlet2</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>

工程结构

 

现在已经写完了,直接去浏览器输入localhost:8080/test/hello 就生成了,

可以在文件夹:...\\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\test\public\1.html找到

结果:

数据已经填入进去!ok

 

 

 

 

0 0
原创粉丝点击