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末元素
是末元素

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值