我的漫漫程序之旅

专注于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 々上善若水々 阅读(5100) 评论(1)  编辑  收藏 所属分类: opensource

评论

# re: FreeMarker中集合类的遍历  回复  更多评论   

请问能不能再ftl 里面直接加载图片数据。。。不通过html页面形式展现
2012-03-20 18:51 |

只有注册用户登录后才能发表评论。


网站导航: