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>
      


    显示结果图:

  • 相关阅读:
    android AudioManager类详解
    Android的Media(录音,播放音乐,播放视频等)
    加载大图片报OOM错误
    cmd更换编码类型
    通讯录数据库插入数据
    开机自启加入任务栈
    特殊的广播接收者(界面注册)
    将Image的名字转换为R.image.id
    通过XML文件生成View
    判断某张表是否存在
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6852665.html
Copyright © 2011-2022 走看看