struts标签:logic标签

来源:互联网 发布:eve捏脸数据 编辑:程序博客网 时间:2024/06/11 10:29

1.<logic:equal> and so on比较标签
 以下eg都是由一个servlet转发过来的
  MyBean mb = new MyBean();
  mb.setName("yc");
  mb.setCount(200);
  request.setAttribute("mybean",mb);
  request.getRequestDispatcher("jsp1.jsp").forward(request,response);

 eg1:<bean:define id="myint" value="100"/> //当前页面定义一个字符串
            <logic:equal name="myint" value="100">
            myint=100
           </logic:equal>

 eg2:<bean:define id="bean3" name="mybean" scope="request"/> //从request上获取bean
           <logic:lessThan  name="bean3" property="count" value="200.a"> //比较bean的count属性和200.a
           bean3 LessThan 200.a
          </logic:lessThan>

 注意:如果两个字符串都能够成功转为数字,则是比较数字的大小,否则像eg2就是比较字符串的大小

 eg3:<bean:define id="bean1" name="mybean" property="name" scope="request"/>
            <logic:equal name="bean1" value="yc">
            name1=yc
           </logic:equal>

 eg4:<bean:define id="bean2" name="mybean" scope="request"/>
           <logic:equal name="bean2" property="name" value="yc">
           name2=yc
          </logic:equal>
 
 注意:eg3和eg4都是比较bean属性,只是写法不同

 eg5:比较请求参数

      <logic:equal parameter="id" value="150">
      <bean:parameter id="myid" name="id"/>
       parameter:<bean:write name="myid"/>=150
      </logic:equal>

2.<logic:match>
 查看指定字符串是否被包含
 <logic:match name=""    value="被包含字符串"    location="start/end也可以不写,就是任意位置"/>

 eg:<bean:define id="bean4" name="mybean" property="name" scope="request"/>
         <logic:match  name="bean4" value="y" location="start">
          yc is start with bean4
         </logic:match>

3.< logic:iterator>
 a.遍历Vector等集合,value形式的
 <logic:iterator    id="每个集合的元素"    name="集合在当前页面的绑定名"    indexId="序号"   
             offset="起始位置,0开始"    length="遍历长度"/>
 
      前提:  Vector v = new Vector();
                    v.add("dog");
                    v.add("girl");
                    v.add("bird");
                    v.add("cat");
                    request.setAttribute("myvector",v);
                    request.getRequestDispatcher("jsp1.jsp").forward(request,response); 


 eg1:<bean:define id="vector1" name="myvector" scope="request"/>
            <logic:iterate id="element" name="vector1">
            <bean:write name="element"/>
            <br />
            </logic:iterate>

 eg2:<bean:define id="vector2" name="myvector" scope="request"/>
            <logic:iterate id="element" name="vector2" indexId="index" offset="1" length="3">
            <bean:write name="index"/>.<bean:write name="element"/><br />
            </logic:iterate>

 b.遍历Map等,key/value形式
    只是输出的时候有所不同
   <bean:write   name=""    property="key"/>输出元素的key部分
   <bean:write   name=""    property="value"/>输出元素的value部分

 前提:  HashMap hm = new HashMap();
  hm.put("yc","yuechen");
  hm.put("tjs","tianjinsong");
  hm.put("xc","xiaocen");
  hm.put("xk","xukai");
  request.setAttribute("mymap",hm);

 eg:<bean:define id="map1" name="mymap" scope="request"/>
         <logic:iterate id="element" name="map1" indexId="index">
         <bean:write name="index"/>.<bean:write name="element" property="key"/>:<bean:write name="element"   property="value"/><br />
        </logic:iterate>
 
  c.遍历map中的集合
  双层iterator,内层iterator需要加入property="value"


  前提:  HashMap hm2 = new HashMap();
               String[]asia = {"china","japan","korea"};
               hm2.put("asia",asia);
               String[]erop = {"greman","rasa","england"};
               hm2.put("erop",erop);
               String[]us = {"usa","canada"};
               hm2.put("us",us);
               request.setAttribute("country",hm2);

  eg:<bean:define id="myc" name="country" scope="request"/>
          <logic:iterate id="element" name="country" indexId="index">
          <bean:write name="index"/>.<bean:write name="element" property="key"/><br />
          <logic:iterate id="inelement" name="element" indexId="inindex" property="value">
          -----<bean:write name="inindex"/>.<bean:write name="inelement"/><br />
          </logic:iterate>
         </logic:iterate>