时间:2014-02-17 21:41:16

标签: jsp struts

我正在使用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,然后,我可以使用表单来更新存储该人的表格以及他所在的学校?

如果我不够清楚,请问我这样可以更好地解释问题。

1 个答案:

答案 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");