2012-07-20 72 views
1

我想從數據庫傳遞一些值以使用各種選擇菜單(大約5)填充頁面。使用從Servlet到JSP的數據填充選擇菜單

我可以使用JSTL SQL標籤做到這一點,但這不是好習慣。

如何從單個servlet獲取這些數據?
我可以從一個servlet發送多個列表嗎?

選擇菜單從不同的表中填充。我想使用RequestDispatcher將列表轉發給jsp。

回答

3

您可以使用單獨的ArrayList來存儲Servlet中檢索的各種列表,然後將每個列表存儲爲請求屬性,如@devsundar所述。您可以通過隱式對象在您的JSP中檢索這些屬性。

如果你只想把所有的名單在單個請求屬性,那麼@KaipaMSarma's建議是好事,有一個HashMap<String, ArrayList>,使你的servlet代碼可能是這個樣子:

List list1 = getListOneFromDatabase(); 
List list2 = getListTwoFromDatabase(); 
List list3 = getListThreeFromDatabase(); 
// and so on ... 

Map<String, List> requestListMap = new HashMap<String, List>(); 
requestListMap.put("list1", list1); 
requestListMap.put("list2", list2); 
requestListMap.put("list3", list3); 
// and so on ... 

request.setAttribute("reqListMap", requestListMap); 

希望這有助於。

1

您可以在請求屬性中設置來自數據庫的數據並將其呈現在JSP中。

http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#setAttribute(java.lang.String,java.lang.Object中)

+0

是的,但我怎麼能把多個列表放入一個請求屬性?這些列表最好來自不同的DAO的 – MaxI 2012-07-20 08:48:57

+0

好吧..我有你的場景。讓我們拿一個Arraylist/Map並把你所有的列表放到它裏面,然後把這個對象設置爲一個屬性 – Jayy 2012-07-20 08:53:32

+0

@KaipaMSarma – 18bytes 2012-07-20 09:01:34

1

是你可以做。從您的servlet中,您可以訪問數據庫(任意數量的表)並將結果集存儲在集合對象中,並將這些對象作爲屬性傳遞給JSP。