Struts2 中循环迭代的使用示例.

以下为Struts2 中循环迭代的使用示例. 在我写的demo中我用了3重迭代,虽然有些麻烦,目的是为了显示迭代的逻辑性和可读性。

用户User -----1:N ----- 书本Book 

书本Book -----1:N ----- 出版商 Publisher (就是多个出版商出奔这本书)

以下为测试源码和截图效果:

testIterator.jsp

<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<%            class User
            {
                
private String userName;

                
private String passWord;
                
                
private java.util.List bookList;

                
public String getPassWord()
                {
                    return passWord;
                }

                
public void setPassWord(String passWord)
                {
                    this.passWord 
= passWord;
                }

                
public String getUserName()
                {
                    return userName;
                }

                
public void setUserName(String userName)
                {
                    this.userName 
= userName;
                }
                
                
public java.util.List getBookList()
                {
                    return bookList;
                }

                
public void setBookList(java.util.List bookList)
                {
                    this.bookList 
= bookList;
                }

            }

            class Book
            {
                
private String bookName;
                
private String price;
                
private java.util.List publisherList;

                
public String getBookName()
                {
                    return bookName;
                }

                
public void setBookName(String bookName)
                {
                    this.bookName 
= bookName;
                }
                
public String getPrice()
                {
                    return price;
                }

                
public void setPrice(String price)
                {
                    this.price 
= price;
                }
                
                
public java.util.List getPublisherList()
                {
                    return publisherList;
                }

                
public void setPublisherList(java.util.List publisherList)
                {
                    this.publisherList 
= publisherList;
                }
            }
            
            class Publisher
            {
                
private String publisherName;

                
public String getPublisherName()
                {
                    return publisherName;
                }

                
public void setPublisherName(String publisherName)
                {
                    this.publisherName 
= publisherName;
                }
            }
%
>

<%
    java.util.List userList 
= new java.util.ArrayList(); 
    java.util.List bookList 
= new java.util.ArrayList(); 
    java.util.List publisherList 
= new java.util.ArrayList(); 
    
    Publisher publisher 
= new Publisher();
    publisher.setPublisherName(
"华中师大");
    publisherList.add(publisher);
    publisher 
= new Publisher();
    publisher.setPublisherName(
"中国大学");
    publisherList.add(publisher);
    
    Book book 
= new Book();
    book.setBookName(
"Math");
    book.setPrice(
"50");
    book.setPublisherList(publisherList);
    bookList.add(book);
    book 
= new Book();
    book.setBookName(
"Sicence");
    book.setPrice(
"100");
    book.setPublisherList(publisherList);
    bookList.add(book);
    bookList.add(book);
    
    User u 
= new User();
    u.setUserName(
"Jack");
    u.setPassWord(
"66666");
    u.setBookList(bookList);
    userList.add(u);
    
    u 
= new User();
    u.setUserName(
"Tom");
    u.setPassWord(
"55555");
    u.setBookList(bookList);
    userList.add(u);
    
    u 
= new User();
    u.setUserName(
"Shawn");
    u.setPassWord(
"00000");
    u.setBookList(bookList);
    userList.add(u);
    
    request.setAttribute(
"users", userList);
    
%
>

<table border="1" width="400" border="1">
    
<tr>
        
<th>姓名</th>
        
<th>密码</th>
        
<th>书籍</th>
        
<th>&nbsp;</th>
    
</tr>
    
<s:iterator value="#request.users" id="usersResult" status="st">
        
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
            
<td><s:property value="userName" /></td>
            
<td><s:property value="passWord" /></td>
            
<td>
                
<table  align="center" border="1" width="100%">
                
<tr bgcolor="red">
                    
<th>书名</th>
                    
<th>价格</th>
                    
<th>出版社</th>
                
</tr>
                
<s:iterator value="bookList" id="bookName" status="st">
                        
<tr>
                            
<TD><s:property value="bookName"/></TD>
                            
<TD><s:property value="price"/></TD>
                            
<td>
                                
<table  align="center" border="1">
                                
<s:iterator value="publisherList" id="publisher" status="st">
                                        
<tr>
                                            
<TD><s:property value="publisherName"/></TD>
                                        
</tr>
                                
</s:iterator>
                                
</table>
                            
</td>
                            
                            
                        
</tr>
                
</s:iterator>
                
</table>
            
</td>
            
<TD>
                
<s:if test="#st.first">是首元素</s:if>
                
<s:elseif test="#st.last">是末元素</s:elseif>
                
<s:else>是非首末元素</s:else>
            
</TD>
        
</tr>
    
</s:iterator>
    
    
<hr>
    
    
<tr></tr>
    
<tr></tr>
    
<tr></tr>
    
<tr></tr>
    
<s:iterator value="#request.users" id="usersResult" status="st">
        
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
            
<td><s:property value="userName" /></td>
            
<td><s:property value="passWord" /></td>
            
<td>
                
<table  align="center">
                
                    
<s:set value="#usersResult" name="ppp"/>
                    
<!--s:property value="#ppp.bookList"/ -->                          <!-- 写法与上面的不同A -->
                    
                    
<s:iterator value="#ppp.bookList" id="bookName" status="st">
                        
<s:set value="#bookName" name="userIndex"/>
                        
<tr>
                            
<TD><s:property value="#userIndex.bookName"/></TD>        <!-- 写法与上面的不同B -->
                            
<TD><s:property value="#userIndex.price"/></TD>
                            
<TD>
                                
<s:if test="#st.first">首元素</s:if>
                                
<s:elseif test="#st.last">末元素</s:elseif>
                                
<s:else>中间元素</s:else>
                            
</TD>
                        
</tr>
                    
</s:iterator>
                    
                    
                
</table>
            
</td>
            
<TD>
                
<s:if test="#st.first">是首元素</s:if>
                
<s:elseif test="#st.last">是末元素</s:elseif>
                
<s:else>是非首末元素</s:else>
            
</TD>
        
</tr>
    
</s:iterator>
    
    
</table>

 

效果图:

姓名密码书籍 
Jack66666
书名价格出版社
Math50
华中师大
中国大学
Sicence100
华中师大
中国大学
Sicence100
华中师大
中国大学
是首元素
Tom55555
书名价格出版社
Math50
华中师大
中国大学
Sicence100
华中师大
中国大学
Sicence100
华中师大
中国大学
是非首末元素
Shawn00000
书名价格出版社
Math50
华中师大
中国大学
Sicence100
华中师大
中国大学
Sicence100
华中师大
中国大学
是末元素
Jack66666
Math50首元素
Sicence100中间元素
Sicence100末元素
是首元素
Tom55555
Math50首元素
Sicence100中间元素
Sicence100末元素
是非首末元素
Shawn00000
Math50首元素
Sicence100中间元素
Sicence100末元素
是末元素

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值