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,對于集合類的訪問輸出確實很方便 了。







































2.TestServlet:




























































































3.web.xml:




















4.WEB-INF/templates/test.ftl:

















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