使用FreeMarker的Web Project例子



创建一个名为FreemarkerDemoWeb Project

 

删除index.jsp,新建index.htmlindex.html中的内容为:



Hello FreeMarker Example



点击下面链接看看效果:

调用Hello模板

web.xml中的内容为



	FreemarkerDemo
	
		index.html
	

FreemarkerDemo部署到tomcat服务器中

使用FreeMarker的Web Project例子_第1张图片 


使用FreeMarker的Web Project例子_第2张图片


运行FreemarkerDemo程序

使用FreeMarker的Web Project例子_第3张图片


在浏览器中输入http://localhost:8080/FreemakerDemo

使用FreeMarker的Web Project例子_第4张图片


点击上图中的“调用Hello模板,报错

使用FreeMarker的Web Project例子_第5张图片


下面要利用FreeMarker来实现这个点击事件。

WebRoot下创建lib目录,将freemarker包放到lib目录下并刷新

使用FreeMarker的Web Project例子_第6张图片


WebRoot下新建templates目录,在此目录下新建hello.ftl文件,其内容为


 
 hello
 
 
 

Hello ${user}!


使用FreeMarker的Web Project例子_第7张图片


src下创建example包,在example包下创建Hello.java,其内容为:

package example;
 
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import freemarker.template.*;
 
public class Hello extends HttpServlet {
   private static final long serialVersionUID = 1L;
   private Configuration cfg;
 
   public void init() {
       //初始化FreeMarker配置
       //创建一个Configuration实例
       cfg =new Configuration();
       //设置FreeMarker的模版文件位置
       cfg.setServletContextForTemplateLoading(getServletContext(),"templates");
   }
 
   public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
       //建立数据模型
       Map map =new HashMap();
       //放入对应数据key value
       map.put("user","Zheng");
       //取得模版文件
       Template t =cfg.getTemplate("hello.ftl");
       //开始准备生成输出
       //使用模版文件的charset作为本页面的charset
       //使用text/html MIME-type
       response.setContentType("text/html; charset=" + t.getEncoding());
       PrintWriter out = response.getWriter();
 
       //合并数据模型和模版,并将结果输出到out中
       try {
           t.process(map,out);//用模板来开发servlet可以只在代码里面加入动态的数据
       } catch(TemplateException e) {
           throw new ServletException("处理Template模版中出现错误", e);
       }
   }
}

web.xml中添加内容,添加完之后的全部内容为



	
	FreemarkerDemo
	
	
		index.html
	

	
		Hello
		example.Hello
	

	
		Hello
		*.do
	
	

重新运行项目,并且在浏览器中输入http://localhost:8080/FreemakerDemo

使用FreeMarker的Web Project例子_第8张图片


点击“调用Hello模板”超链接,跳转到另一个界面

使用FreeMarker的Web Project例子_第9张图片

 

你可能感兴趣的:(Java)