Struts逻辑迭代标记循环遍历表行

时间:2012-05-15 19:28:57

标签: loops html-table struts-1

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

 <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

我希望姓氏只针对每个名字出现一次,而不是针对创建的那么多行。

3 个答案:

答案 0 :(得分:1)

在操作中创建一个正确的数据结构,并传递它而不是两个列表。

答案 1 :(得分:1)

@Dave答案是正确的,虽然这可能会对您有所帮助,

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

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>

答案 2 :(得分:0)

作为旁注,您可以轻松地使用hashmap。 在java类中,您将创建一个hashap,代码将类似于

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,您可以轻松地将其转换为代码表