0

我正在使用支柱。当每个迭代使用不同的列表时,如何使用迭代标记创建一个遍历名字和姓氏的表行?

 <logic:iterate name="fName" id="listMsgId1">
      <tr>
           <td>First Name: <bean:write name="listMsgId1"/></td>
           <logic:iterate name="lName" id="listMsgId2" >
           <td>Last Name: <bean:write name="listMsgId2"/></td>     
           </logic:iterate>     
      </tr>
 </logic:iterate>

目前,我得到的输出是名字:juan 姓氏:brown 姓氏:smith 名字:ken 姓氏:brown 姓氏:smith

我希望每个名字只出现一次姓氏,而不是创建的行数。

4

3 回答 3

1

@Dave 的答案是正确的,尽管这可能对您有所帮助,

您应该创建ActioForm包含 2 个属性。

public class PersonDetail extends ActionForm 
{
protected String firstName;
protected String lastName;

public void setFirstName(String newFirstName) {
    firstName = newFirstName;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String newLastName) {
    lastName = newLastName;
}

public String getLastName() {
    return lastName;
}
}

现在根据要求进行迭代,假设PersonDetailArrayList您的操作类中。

<logic:iterate name="PersonDetail" id="listUsers">
     <tr>
          <td>First Name: <bean:write name="listUsers" property="FirstName"/></td>
          <td>Last Name: <bean:write name="listUsers" property="LastName"/></td>
     <tr>
</logic:iterate>
于 2012-05-16T09:43:51.280 回答
1

在操作中创建适当的数据结构并传递它而不是两个列表。

于 2012-05-15T19:38:38.417 回答
0

作为旁注,您可以使用 hashmap 轻松完成。在 java 类中,您将创建一个哈希,代码将是这样的

HashMap<String,String> myMap = new HashMap();
myMap.put("DummyFirstName", "DummyLastName");
myMap.put("raheel","arif");
myMap.put("dave","newton");
request.setAttribute("SubscribedLists", myMap);

和jsp页面代码将是

               <logic:iterate name="SubscribedLists" id="SubscribedListsId">

                        <div>                         
                        <p><bean:write name="SubscribedListsId" property="key"/></p>                             
                        </div>

                        <div>
                          <p><bean:write name="SubscribedListsId" property="value"/></p>
                        </div>
                </logic:iterate>

在我的示例中,我使用了 div,您可以轻松地将其转换为代码表

于 2012-10-12T04:51:43.237 回答