2014-02-17 55 views
5

我使用Struts創建一個應用程序,我從數據庫和學校列表中獲取人員列表,然後使用html:select,以便用戶可以選擇學校對於每個元素,這裏是我被卡住的jsp頁面的一部分。<display:column + <html:select

<display:table id="list" name="myForm.list" > 
    <display:column title="ID" property="id"/> 
    <display:column title="Name" property="name" sortable="true"/> 
    <display:column title="School" > 
    <html:select property="idSchool"> 
     <logic:notEmpty name="myForm" property="SchoolCombo"> 
     <bean:define id="SchoolCombo" name="myForm" property="SchoolCombo"/> 
     <html:options collection="SchoolCombo" property="id" labelProperty="name"/> 
     </logic:notEmpty> 
    </html:select> 
    </display:column> 
</display:table> 

上myForm的名單的人有一個ID,名稱和idSchool名單,這是一個沒有初始值的int。學校組合是來自數據庫的具有ID和名稱的學校列表。

我可以這樣做,爲列表我就可以在JSP頁面上設置的idSchool然後,我可以使用表格中的每個元素,更新,存儲的人,並與學校他的桌子上?

如果我不夠清楚,請提問,以便我可以更好地解釋問題。

回答

1

據我所知,我給你這個問題的一般解決方案,你必須做一個完整的解決方案所需的額外工作..我解釋這個通過使用Struts2 <s:tag>所以,你有改變根據你的要求。首先,在迭代列表中添加唯一元素作爲隱藏字段。這些隱藏的字段可以在服務器端從請求參數列表中檢索。當您點擊任何記錄時,它會被您設置爲隱藏字段的唯一標識符(ItemRec-下面解釋)識別。

<s:iterator value="TheListOfItems" status="ItemRec"> 

    <s:hidden name="TheListOfItems[%{#ItemRec.index}].id" value="%{id}" /> 
    <s:hidden name="TheListOfItems[%{#ItemRec.index}].attribut2" value="%{attribut2}" /> 
    <s:hidden name="TheListOfItems[%{#ItemRec.index}].attribut3" value="%{attribut3}" /> 
    <the actual values/records get iterated here> 

</s:iterator> 

在服務器端,您可以執行以下操作來檢索他們這樣

String id= getRequest().getParameter("id");