2014-02-17 53 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");