我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          FreeMarker中集合類的遍歷

          1.建一個vo類:
          package com;

          public class User
          {
              
          private Integer id;
              
          private String username;
              
          private Integer age;

              
          public Integer getId()
              
          {
                  
          return id;
              }


              
          public void setId(Integer id)
              
          {
                  
          this.id = id;
              }


              
          public String getUsername()
              
          {
                  
          return username;
              }


              
          public void setUsername(String username)
              
          {
                  
          this.username = username;
              }


              
          public Integer getAge()
              
          {
                  
          return age;
              }


              
          public void setAge(Integer age)
              
          {
                  
          this.age = age;
              }

          }


          2.TestServlet:
          package com;

          import java.io.IOException;
          import java.io.PrintWriter;
          import java.util.ArrayList;
          import java.util.HashMap;
          import java.util.List;
          import java.util.Map;

          import javax.servlet.ServletException;
          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;

          @SuppressWarnings(
          "serial")
          public class TestServlet extends HttpServlet
          {
              Configuration cfg 
          = null;

              
          public void init() throws ServletException
              
          {
                  cfg 
          = new Configuration();
                  cfg.setServletContextForTemplateLoading(
          this.getServletContext(), null);
              }


              
          /**
               * 模擬數據庫,初始化數據庫集合放的是vo對象
               * 
               * 
          @return
               
          */

              
          private List<User> initData()
              
          {
                  List
          <User> users = new ArrayList<User>();
                  User u1 
          = new User();
                  u1.setId(
          1);
                  u1.setUsername(
          "zdw");
                  u1.setAge(
          24);

                  User u2 
          = new User();
                  u2.setId(
          2);
                  u2.setUsername(
          "shy");
                  u2.setAge(
          22);

                  User u3 
          = new User();
                  u3.setId(
          3);
                  u3.setUsername(
          "tt");
                  u3.setAge(
          100);
                  users.add(u1);
                  users.add(u2);
                  users.add(u3);
                  
          return users;

              }


              @SuppressWarnings(
          "unchecked")
              
          public void doGet(HttpServletRequest request, HttpServletResponse response)
                      
          throws ServletException, IOException
              
          {
                  
          // 普通集合
                  List list = new ArrayList();
                  list.add(
          "zdw");
                  list.add(
          "test");
                  list.add(
          "shy");
                  
          // vo集合
                  List users = this.initData();

                  Map map 
          = new HashMap();
                  map.put(
          "list", list);
                  map.put(
          "users", users);
                  Template template 
          = cfg.getTemplate("WEB-INF/templates/test.ftl");
                  PrintWriter out 
          = response.getWriter();
                  
          try
                  
          {
                      template.process(map, out);
                  }
           catch (TemplateException e)
                  
          {
                      e.printStackTrace();
                  }

              }


              
          public void doPost(HttpServletRequest request, HttpServletResponse response)
                      
          throws ServletException, IOException
              
          {
                  
          this.doGet(request, response);
              }


          }


          3.web.xml:
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.5" 
              xmlns
          ="http://java.sun.com/xml/ns/javaee" 
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance" 
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/javaee 
              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
          >
            
          <servlet>
              
          <servlet-name>TestServlet</servlet-name>
              
          <servlet-class>com.TestServlet</servlet-class>
            
          </servlet>

            
          <servlet-mapping>
              
          <servlet-name>TestServlet</servlet-name>
              
          <url-pattern>/TestServlet</url-pattern>
            
          </servlet-mapping>
            
          <welcome-file-list>
              
          <welcome-file>index.jsp</welcome-file>
            
          </welcome-file-list>
          </web-app>

          4.WEB-INF/templates/test.ftl:
          <html>
          <head><title>測試</title></head>

          <body>
             
          <#--普通集合的輸出-->
              
          <#list list  as l>
                      ${l} 
          <br />
                
          </#list>
                
          <hr />
                
          <#-- 集合users的輸出 -->
                
          <#list users as u >
                      userId:${u.id}  
          <br />
                      username: ${u.username} 
          <br />
                      age :     ${u.age} 
          <br />             
                
          </#list>
          </body>
          </html>

          5.訪問地址:http://localhost:8888/freemarker/TestServlet
          即可看到:
          zdw
          test
          shy

          userId:1
          username: zdw
          age : 24
          userId:2
          username: shy
          age : 22
          userId:3
          username: tt
          age : 100

          ok,對于集合類的訪問輸出確實很方便 了。

          posted on 2008-06-04 09:35 々上善若水々 閱讀(5130) 評論(1)  編輯  收藏 所屬分類: opensource

          評論

          # re: FreeMarker中集合類的遍歷  回復  更多評論   

          請問能不能再ftl 里面直接加載圖片數據。。。不通過html頁面形式展現
          2012-03-20 18:51 |
          主站蜘蛛池模板: 莆田市| 合江县| 阿荣旗| 蓬莱市| 凭祥市| 台东市| 新乡县| 屏东县| 石河子市| 壶关县| 桓台县| 云南省| 新龙县| 渭源县| 古浪县| 仲巴县| 蕉岭县| 天台县| 曲周县| 噶尔县| 沅江市| 黄山市| 秀山| 芦溪县| 天水市| 汝州市| 北辰区| 沈丘县| 曲阳县| 谷城县| 西贡区| 津市市| 武功县| 西青区| 高邮市| 宜昌市| 株洲县| 仙桃市| 仁怀市| 茂名市| 靖安县|