我正在使用Struts创建一个应用程序,我从数据库和学校列表中获取人员列表,然后我使用html:select,这样用户就可以为每个元素选择学校,这里是我被卡住的jsp页面。
<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,然后,我可以使用表单来更新存储该人的表格以及他所在的学校?
如果我不够清楚,请问我这样可以更好地解释问题。
答案 0 :(得分:1)
据我所知,我正在为您提供此问题的一般解决方案,您必须完成完整解决方案所需的额外工作。我正在使用Struts2 <s:tag>
来解释这一点,所以,你有根据您的要求改变。首先,放置通过列表迭代的位置,并将唯一元素添加为隐藏字段。可以从请求参数列表的服务器端检索这些隐藏字段。当您单击任何记录时,它会被您设置为隐藏字段的唯一ID标识(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");