2011-03-20 24 views
0

我正在研究JSP-servlet應用程序,現在我正在編寫一個編輯註冊服務器信息的頁面。jsp頁面中的參數穩定

該senario是有一個ArrayList我發送表單servlet到JSP頁面時,我加載頁面。 ArrayList包含有關注冊服務商所屬組的信息,ArrayList是在製作多個SQL語句後生成的。當用戶嘗試編輯某些字段並將一個必填字段設置爲空並提交表單時,servlet會進行驗證並返回錯誤以編輯頁面。

我面臨的問題是,我第一次發送的所有羣體都在天空中飛翔。所以我必須再次連接到DB,並進行多次查詢以再次獲取組,並將其發送回JSP頁面。 是否有另一種簡單的方法來使JSP頁面中的arrayList穩定?

編輯 下面是代碼,我在會話中使ArrayList的範圍。

<c:set var="userGroups" value="${userGroups}" scope="session"></c:set> 
+0

是Ajax的一個選項嗎? – 2011-03-20 22:45:36

+0

@ Piyush-我不知道阿賈克斯,但如果它有效,我真的很想知道如何。 – palAlaa 2011-03-21 06:40:42

回答

2

可以將它存儲在會話中或者只是與之共存。我真的沒有看到任何問題。如果具體問題是你必須再次複製相同的代碼,或者整個代碼在Servlet類中是醜陋的,那麼只需將它重構/隱藏到一個可用的DAO類中,該類可以在Servlet中導入/調用/重用通常的Java方式。


更新:根據您的更新,這是沒有意義的。你只需要從

request.setAttribute("userGroups", userGroups); 

改變你的servlet代碼

request.getSession().setAttribute("userGroups", userGroups); 

你不需要<c:set>這一點。

+0

我試圖通過將變量的範圍作爲會話來將其存儲在會話中,但它不起作用,你用它來實現它是什麼意思?我面臨的主要問題是我第一次獲得ArrayList的多個sql語句,並且將這些函數封裝在類中似乎是個好主意,但是DAO欣賞代表了什麼? – palAlaa 2011-03-21 06:45:08

+0

如果它不起作用,那麼你可能做錯了什麼。至於「只是與之共存」,我的意思是說「接受並繼續」。 DAO縮寫代表數據訪問對象。 – BalusC 2011-03-21 12:28:02

+0

Thanx爲這個信息,我會把代碼相關的會議範圍,請參閱編輯部分PLZ。 – palAlaa 2011-03-21 14:32:14