【Struts2五】ValueStack以及ognl表达式二(常用标签)

   Ognl常用标签:   

  1、s:debug
      如果把该标签放入到s:iterator中可以看到当前正在迭代的元素的状态
   2、s:property
      1、输出
      2、value属性:值能直接跟ognl表达式
      3、如果value属性不写,则默认输出栈顶的元素
   3:s:iterator标签
      (1)、iterator迭代Collection,Map,Object[],还可以以组合的形式迭代
      (2)、当前正在迭代的元素在栈顶
      (3)、如果value属性不写,则默认迭代栈顶的元素
      (4)、如果迭代的是map元素,当前正在迭代的元素是Entry<key,value>,这个时候key和value是对象栈
         中的属性
       (5)、var属性,var='aa'相当于给当前正在迭代的元素在map栈又存放了一次,key值为aa
       (6)、status属性,可以获取当前正在迭代的元素的信息count,index,odd,event,查看IteratorStatus这个类
       (7)、end,first,step属性
   4、s:if  s:elseif
       注意:不能使用单个字符进行判断
             <s:if test="name==1">   <s:if test="name=='1'">这种写法不对

========================示例:
1.在Action中将数据存入valuestack中;
public  String putListToMap(){
          List<Person> personList =  new ArrayList<Person>();    
          Person p=  null;
            for (int i = 0; i < 50; i++) {
              p=  new Person();
                if(i%3==0){
                   p.setPid(  "aa");
                   p.setUsername(  "P"+i);
              }
                if(i%3==1){
                   p.setPid(  "bb");
                   p.setUsername(  "p"+i);
              }
                if(i%3==2){
                   p.setPid(  "cc");
                   p.setUsername(  "p"+i);
              }
              personList.add(p);
              
          }
          
          ActionContext. getContext().put( "pList" , personList);
            return "list_map" ;
     }

2.在jsp页面迭代显示集合数据:
< style  type= "text/css">
            .odd{
                background-color:red ;
          }
            .even{
                background-color:blue ;
          }
            .blue{
                background-color:yellow ;
          }
            .red{
                background-color:red ;
          }
   </style >

< s:iterator  value= "#pList" var ="aa" status="statu">
          
                <!-- 每三行变色 status 使用s:debug可以查看到该类为IteratorStatus -->
                <tr class= "<s:property value="#statu.index%3==0?'blue':'red'" />">
                <%--<tr class="<s:property value="#statu.even?'even':'odd'"/>">
                   --%>
                     <td>
                          <s:property value= "pid"/>
                     </td>
                     <td>
                          <s:property value= "username"/>
                     </td>
                     <td>
                          <s:property value="#statu.count" />
                     </td>
                     <td>
                          <s:if test= "#statu.odd">
                             奇数行
                          </s:if>
                          <s:elseif test= "#statu.even">
                             偶数行
                          </s:elseif>
                     </td>
                     <td>
                          <s:property value="#statu.index" />
                     </td>
                     <td>
                          <s:if test="pid=='aa'||pid=='bb'" >
                               <input type= "button" name="adsf" value="修改">
                          </s:if>
                     </td>
                     <td>
                          <s:if test="pid=='cc'||pid=='aa'" >
                               <input type= "button" name="adsf" value="删除">
                          </s:if>
                     </td>
                </tr>
            </s:iterator>
  


显示结果图:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值