【问题标题】:<display:column + <html:select<显示:列+ <html:选择
【发布时间】:2014-02-17 21:41:16
【问题描述】:

我正在使用 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、name 和 idSchool 的人员列表,它是一个没有初始值的 int。 School 组合是来自数据库的学校列表,带有 id 和名称。

我该怎么做,对于列表的每个元素,我可以在 jsp 页面上设置 idSchool,然后,我可以使用表单来更新一个表格,其中存储了这个人和他所在的学校?

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

【问题讨论】:

    标签: jsp struts


    【解决方案1】:

    据我所知,我正在为您提供此问题的通用解决方案,您必须完成完整解决方案所需的额外工作。我正在使用 Struts2 &lt;s:tag&gt; 来解释这一点,所以您可以根据根据您的要求。首先,将您在列表中迭代的位置,并将唯一元素添加为隐藏字段。这些隐藏字段可以在服务器端从请求参数列表中检索。当您单击任何记录时,它会由您设置为隐藏字段的唯一 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");
    

    【讨论】: