2013-03-04 47 views
0

我正在使用struts 1.3。在我的动作类中,我从数据库访问数据,并在Bean类对象(每行一个对象)中设置值。最后,我将这些对象添加到一个ArrayList对象中。 现在在我的jsp我需要显示这些数据(Bean属性值)。 我使用scriptlets做到了这一点,它的工作正常。但我只想使用标签(按标准方式推荐)。 任何人可以提供一些想法如何使用<logic:iterate><nested:iterate>什么可以正常工作?如何从Bean对象的ArrayList显示Bean属性?

这里是我的JSP代码:

<% AppForm fm; %> 
    <% Iterator itr; int i=0; 
    ArrayList al=(ArrayList)request.getAttribute("data"); 
    System.out.println("ArrayList size is..."+al.size()); 
    if(al!=null) 
    { 
     for(itr=al.iterator(); itr.hasNext();i++) 
     { 
      fm=(AppForm)itr.next(); 
     %> 
     <tr id=i onclick="toggle(this)" bgcolor="pink"> 
      <td align="center"> 
      <%= fm.getRegid() %> 
      </td> 
      <td align="center"> 
      <%= fm.getEid() %> 
      </td> 
      <td align="center"> 
      <%= fm.getFname() %> 
      </td> 
      <td align="center"> 
      <%= fm.getLname() %> 
      </td> 
      <td align="center"> 
      <%= fm.getDesignation() %> 
      </td> 
      <td align="center"> 
      <%= fm.getEmail() %> 
      </td> 
      <td align="center"> 
      <%= fm.getContact() %> 
      </td> 
      <td align="center"> 
      <%= fm.getAddress() %> 
      </td> 
      <td align="center"> 
      <%= fm.getQualification() %> 
      </td> 
      <td align="center"> 
      <%= fm.getJdate() %> 
      </td> 
      <td align="center"> 
      <%= fm.getReqdate() %> 
      </td> 
      <td align="center"> 
      <%= fm.getIpaddress() %> 
      </td> 
      <td align="center"> 
      <input type="radio" name="<%= fm.getEid() %>" value="approved" onclick="this.parentNode.parentNode.bgColor='DarkOliveGreen'"; /> 
      </td> 
      <td align="center"> 
      <input type="radio" name="<%= fm.getEid() %>" value="rejected" onclick="this.parentNode.parentNode.bgColor='Orchid'"; /> 
      </td> 

    </td> 
     </tr> 
     <% 
     } 
    } 
    %> 
+0

推荐的方式是使用JSTL('')而不是过时的Struts逻辑标签。阅读文档,并尝试一些。 – 2013-03-04 12:49:13

回答

1

试试这个

<c:forEach var="i" items ="${data}"> 
    <tr> 
    <td>${i.eId}</td> 
    <td>${i.lName}</td> 
    .................... 
    </tr> 
</c:forEach> 
+0

嗨Dave先生, 谢谢您的回复。但我希望使用struts提供的标签。我想如果有可能使用struts标签,那么不需要使用JSTL标签。如果您有任何想法,请告诉我。 – 2013-03-05 04:19:46

+0

@ShaileshSaxena正如JB所说,当JSTL的功能与Struts 1标签重叠时,应该首选JSTL,如[在S1标签文档中提到的](http://struts.apache.org/development/1.x/struts-taglib /dev_logic.html)。 – 2013-03-06 21:46:04

+0

非常感谢您提供有用的信息。 – 2013-09-12 14:15:56

1

与Struts标签相同版本

<logic:iterate id="item" name="data" indexId="idx"> 
    Row index: <bean:write name="idx"/> 
    <bean:write name="item" property="eid"/> 
    <bean:write name="item" property="fname"/> 
</logic:iterate>