zoukankan      html  css  js  c++  java
  • 【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>
      


    显示结果图:

  • 相关阅读:
    (双指针 二分) leetcode 167. Two Sum II
    (双指针) leetcode 485. Max Consecutive Ones
    (双指针) leetcode 27. Remove Element
    (String) leetcode 67. Add Binary
    (数组) leetcode 66. Plus One
    (N叉树 BFS) leetcode429. N-ary Tree Level Order Traversal
    (N叉树 递归) leetcode 590. N-ary Tree Postorder Traversal
    (N叉树 递归) leetcode589. N-ary Tree Preorder Traversal
    (N叉树 DFS 递归 BFS) leetcode 559. Maximum Depth of N-ary Tree
    (BST 递归) leetcode98. Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6852665.html
Copyright © 2011-2022 走看看