问题描述 投票:5回答:1

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

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

jsp struts
1个回答
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");
© www.soinside.com 2019 - 2024. All rights reserved.