• 使用FreeMarker的Web Project例子


    1 创建一个名为FreemarkerDemo的Web Project

     

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

     

    [html] view plain copy
     
    1. <html>  
    2. <head>  
    3. <title>Hello FreeMarker Example</title>  
    4. <meta http-equiv="Content-type" content="text/html; charset=utf-8">  
    5. </head>  
    6. <body>  
    7. 点击下面链接看看效果:  
    8. <hr>  
    9. <href="hello.do">调用Hello模板</a>  
    10. </body>  
    11. </html>  

    3 把web.xml中的内容为

     

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    3.     xmlns="http://xmlns.jcp.org/xml/ns/javaee"  
    4.     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"  
    5.     id="WebApp_ID" version="3.1">  
    6.     <display-name>FreemarkerDemo</display-name>  
    7.     <welcome-file-list>  
    8.         <welcome-file>index.html</welcome-file>  
    9.     </welcome-file-list>  
    10. </web-app>  

    4 把FreemarkerDemo部署到tomcat服务器中

     

     

     

     

    5 运行FreemarkerDemo程序

     

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

     

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

     

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

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

     

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

     

    [html] view plain copy
     
    1. <html>  
    2.  <head>  
    3.  <title>hello</title>  
    4.  </head>  
    5.  <body>  
    6.  <h1>Hello ${user}!</h1>  
    7.  </body>  
    8. </html>  


     

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

     

    [java] view plain copy
     
    1. package example;  
    2.    
    3. import java.io.*;  
    4. import java.util.*;  
    5. import javax.servlet.ServletException;  
    6. import javax.servlet.http.*;  
    7. import freemarker.template.*;  
    8.    
    9. public class Hello extends HttpServlet {  
    10.    private static final long serialVersionUID = 1L;  
    11.    private Configuration cfg;  
    12.    
    13.    public void init() {  
    14.        //初始化FreeMarker配置  
    15.        //创建一个Configuration实例  
    16.        cfg =new Configuration();  
    17.        //设置FreeMarker的模版文件位置  
    18.        cfg.setServletContextForTemplateLoading(getServletContext(),"templates");  
    19.    }  
    20.    
    21.    public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {  
    22.        //建立数据模型  
    23.        Map<String, String> map =new HashMap<String, String>();  
    24.        //放入对应数据key value  
    25.        map.put("user","Zheng");  
    26.        //取得模版文件  
    27.        Template t =cfg.getTemplate("hello.ftl");  
    28.        //开始准备生成输出  
    29.        //使用模版文件的charset作为本页面的charset  
    30.        //使用text/html MIME-type  
    31.        response.setContentType("text/html; charset=" + t.getEncoding());  
    32.        PrintWriter out = response.getWriter();  
    33.    
    34.        //合并数据模型和模版,并将结果输出到out中  
    35.        try {  
    36.            t.process(map,out);//用模板来开发servlet可以只在代码里面加入动态的数据  
    37.        } catch(TemplateException e) {  
    38.            throw new ServletException("处理Template模版中出现错误", e);  
    39.        }  
    40.    }  
    41. }  


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

     

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    3.     xmlns="http://xmlns.jcp.org/xml/ns/javaee"  
    4.     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"  
    5.     id="WebApp_ID" version="3.1">  
    6.       
    7.     <display-name>FreemarkerDemo</display-name>  
    8.       
    9.     <welcome-file-list>  
    10.         <welcome-file>index.html</welcome-file>  
    11.     </welcome-file-list>  
    12.   
    13.     <servlet>  
    14.         <servlet-name>Hello</servlet-name>  
    15.         <servlet-class>example.Hello</servlet-class>  
    16.     </servlet>  
    17.   
    18.     <servlet-mapping>  
    19.         <servlet-name>Hello</servlet-name>  
    20.         <url-pattern>*.do</url-pattern>  
    21.     </servlet-mapping>  
    22.       
    23. </web-app>  


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

     

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

     

  • 相关阅读:
    【动态规划、贪心】剪绳子
    【Leetcode 数组】 有序数组中出现次数超过25%的元素(1287)
    【Leetcode 数组】 杨辉三角(118)
    【Leetcode 数组】 螺旋矩阵 II(59)
    【Leetcode 数组】 螺旋矩阵(54)
    【BFPRT】数组中出现次数超过一半的数字
    【Leetcode 大小堆、二分、BFPRT、二叉排序树、AVL】数据流的中位数(295)
    【Leetcode 二分】 滑动窗口中位数(480)
    常见ie9兼容问题
    js常用正则表达式
  • 原文地址:https://www.cnblogs.com/grimm/p/6732640.html
Copyright © 2020-2023  润新知