2013-03-04 79 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>