1. 程式人生 > >JSTL標籤庫動態生成表格

JSTL標籤庫動態生成表格

      專案中遇到一個動態生成表格的問題,由於表格的行和列都不是固定的,而是從資料庫中取得的,因此需要動態的建立表格。

      由於規範中要求使用JSTL標籤庫,避免JSP頁面冗餘java程式碼,而我的資料庫暫時又連不上(電腦有點問題),只能是自己給自己提供資料進行測試了。下面我做了一個小例子,測試了一下JSTL的可行性。廢話不多說,直接看例子。

Java程式碼(部分程式碼)

ArrayList arrayList1 = new ArrayList();
arrayList1.add("學號");
arrayList1.add("姓名");
arrayList1.add("性別");
arrayList1.add("聯絡方式");

ArrayList arrayList2 = new ArrayList();
arrayList2.add(new String[]{"0001", "李明", "男", "10000"});
arrayList2.add(new String[]{"0002", "王歡", "女", "10001"});
arrayList2.add(new String[]{"0003", "張華", "女", "10002"});
arrayList2.add(new String[]{"0004", "劉芳", "女", "10003"});
arrayList2.add(new String[]{"0005", "趙六", "男", "10004"});
arrayList2.add(new String[]{"0006", "劉影", "女", "10005"});
	
request.setAttribute("arrayList1", arrayList1);
request.setAttribute("arrayList2", arrayList2);

JSP程式碼

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib prefix="custom" tagdir="/WEB-INF/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test Dynamic Table</title>
</head>
<body>
<div align="center">
		<p></p>
	</div>
	<table width="80%" border="1px" cellpadding="0" cellspacing="0">
		<thead>
			<tr>
				<c:forEach items="${arrayList1}" var="item">
					<th>${item}</th>  
				</c:forEach>
			</tr>
		</thead>
		<tbody>
			<c:forEach items="${arrayList2}" var="item">
				<tr>
					<c:forEach var="i" begin="0" end="${fn:length(arrayList1)-1}" step="1">
						<td align="center">${item[i]}</td>
					</c:forEach>
				</tr>
			</c:forEach>
		</tbody>
	</table>
</body>
</html>

效果圖


       當然,這裡知識做了一個簡單的小例子,而且,這個例子的標題行是不固定的,添加了資料之後,JSP頁面的EL表示式會直接將新增的資料顯示出來,以達到動態生成表格的目的。

       如果需求改變一下,標題行和第一列都是不固定的,都需要從資料庫中讀出具體的數量從而動態生成表格,從這個小例子中,我想對於後邊的需求,你應該會受到一些啟發的,有興趣的自己去嘗試一下吧。