前文《JSP表格模板升級(1)--用Java反射動態指定方法和參數》已經實現了動態指定具體的業務方法,達到了一定的復用性,但現實使用中,一個僅有兩列的列表是無法滿足大多數顯示要求的,於是本文對表格模板進行了改造,實現了一種列數可變的動態表格模板。
首先是數據結構的變化。由於表格從兩列的Key-Value的形式變為可變列,所以數據結構應變為一對多的關系。為簡單起見,筆者定義了一個Key-ValueList形式的類,代表一行的數據,其中“key”是一行的一個描述,筆者這裡將其對應為表格中第一列的值。ValueList是一個列表,可以存儲任意長度的字符串值:
package com.reports.charts.bean; import java.util.List; public classKeyValueListBean { private String Key; private ListValue; public KeyValueListBean() { } public KeyValueListBean(String key,List value) { Key = key; Value = value; } public String getKey() { return Key; } public void setKey(String key) { Key = key; } public List getValue() { return Value; } public void setValue(List value) { Value = value; } }
整個表格的所有數據最終組裝成一個KeyValueListBean的List,List的第一個元素一般存儲該表格的列頭,將這個List放入request之後,在jsp代碼中進行遍歷: