首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts 一.X logic 标签详解

2013-11-22 
struts 1.X logic 标签详解该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。该标签库包含的标

struts 1.X logic 标签详解
  该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。

    该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。
1. logic:empty           
    该标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。该标签用于以下情况:
    1)当Java对象为null时;
    2)当String对象为""时;
    3)当java.util.Collection对象中的isEmpty()返回true时;
    4)当java.util.Map对象中的isEmpty()返回true时。
           eg.
             <logic:empty    name="userList">  
               ...  
            </logic:empty>
            该句等同于:
            if    (userList.isEmpty())    {  
                  ...  
            }  


2.logic:notEmpty
    该标签的应用正好和logic:empty标签相反,略。


3. logic:equal
    该标签为等于比较符。
           eg1. 比较用户的状态属性是否1,若为1,输出"启用";
                  <logic:equal    name="user"    property="state"    value="1">
                      启用
                  </logic:equal>
          eg2. 如果上例中的value值是动态获得的,例如需要通过bean:write输出,因struts不支持标签嵌套,可采用EL来解决该问题。
                 <logic:equal    name="charge"    property="num"    value="${business.num}">  
                     ......
                 </logic:equal>


4.logic:notEqual
    该标签意义与logic:equal相反,使用方法类似,略。


5.logic:forward
    该标签用于实现页面导向,查找配置文件的全局forward。
           eg. <logic:forward name="index"/>


6.logic:greaterEqual
    为大于等于比较符。
           eg. 当某学生的成绩大于等于90时,输出“优秀”:
                <logic:greaterEqual name="student" property="score" value="90">
                   优秀
             </logic:greaterEqual>


7.logic:greaterThan
    此为大于比较符,使用方法同logic:greaterEqual,略;


8.logic:lessEqual
    此为小于等于比较符,使用方法同logic:greaterEqual,略;


9.logic:lessThan
    此为小于比较符,使用方法同logic:greaterEqual,略;


10.logic:match
    此标签比较对象是否相等;
           eg1. 检查在request范围内的name属性是否包含"amigo"串:
             <logic:match name="name" scope="request" value="amigo">
                   <bean:write name="name"/>中有一个“amigo”串。
             </logic:match>
          eg2. 检查在request范围内的name属性是否已“amigo”作为起始字符串:
            <logic:match name="name" scope="request" value="amigo" location="start">
                <bean:write name="name"/>以“amigo”作为起始字符串。
             </logic:match>
          eg3.
             <logic:match header="user-agent" value="Windows">
                你运行的是Windows系统
             </logic:match>


11.logic:notMatch
    此标签用于比较对象是否不相同,与logic:match意义相反,使用方法类似,略。


12.logic:messagePresent
    该标签用于判断ActionMessages/ActionErrors对象是否存在;
           eg. 如果存在error信息,将其全部输出:
                <logic:messagePresent property="error">
                   <html:messages property="error" id="errMsg" >
                         <bean:write name="errMsg"/>
                   </html:messages>  
                </logic:messagePresent >


13.logic:messagesNotPresent
   该标签用于判断ActionMessages/ActionErrors对象是否不存在,使用方法与logic:messagePresent类似,略


14.logic:present
   此标签用于判断request对象传递参数是否存在。
            eg1. user对象和它的name属性在request中都存在时,输出相应字符串:
               <logic:present name="user" property="name">
                   user对象和该对象的name属性都存在
             </logic:present>
           eg2. 若有一个名字为“user”的JavaBean,输出对应字符串:
              <logic:present name="user" >
                   有一个名字为“user”的JavaBean。
             </logic:present>
           eg3.
             <logic:present header="user-agent">
                   we got a user-agent header.
             </logic:present>


15.logic:notPresent
    此标签用于判断request对象传递参数是否不存在,意义与了logic:present相反,使用方法类似,略。


16.logic:redirect
    该标签用于实现页面转向,可传递参数。
            eg1. <logic:redirect href="http://www.chinaitlab.com"/>


17.logic:iterator
    用于显示列表为collection的值(List ,ArrayList,HashMap等)。
             eg1. 逐一输出用户列表(userlList)中用户的姓名:
                <logic:iterate   id="user" name="userList">
                   <bean:write name="user" property="name"/><br>
                </logic:iterate>
             eg2. 从用户列表中输出从1开始的两个用户的姓名
                <logic:iterate   id="user" name="userList" indexId="index"   offset="1" length="2">
                   <bean:write name="index"/>.<bean:write name="user" property="name"/><br>
                </logic:iterate>
             eg3. logic:iterator标签的嵌套举例
                 <logic:iterate id="user" indexId="index" name="userList">
                        <bean:write name="index"/>. <bean:write name="user" property="name"/><br>
                        <logic:iterate id="address" name="user" property="addressList" length="3" offset="1">
                            <bean:write name="address"/><br>
                        </logic:iterate>
                </logic:iterate>
         ...
         stuList.add(stu);
         request.setAttribute("stuList",stuList);
    %>
    <logic:iterate id="stu" name="stuList">
         <tr>
        <td>${stu.id }</td>
        <td>${stu.name }</td>
        <td>${stu.sex }</td>
        <td>${stu.age }</td>
        <td>${stu.desc }</td>
         </tr>
    </logic:iterate>

(2) logic:empty
    用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。该标签用于以下情况:
    当Java对象为null时
    当String对象为""时
    当java.util.Collection对象中的isEmpty()返回true时
    当java.util.Map对象中的isEmpty()返回true时
    下面的代码示例了logic:empty标签判断集合persons是否为空:

    <logic:empty name="stu" property = "books">

    <div>集合books为空!</div> </logic:empty>
     logic:notEmpty标签的应用正好和logic:empty标签相反。

(3) logic:equal   
    这里要介绍的不只是logic:equal(=)标签,而是要介绍一类标签,这类标签完成比较运算,
    包括:
    logic:equal(=)
    logic:notEqual(!=)
    logic:greaterEqual(>=)
    logic:lessEqual(<=)
    logic:graterThan(>)
    logic:lessThan(<)

    Example:
        <logic:equal name="stu" property="name"    value="Alice">
        I am Alice.
        </logic:equal>

        <bean:define id="count" value="168"/>
        <logic:equal name="count" value="168">
        Good lucky number.
        </logic:equal>

原文http://hi.baidu.com/saint1107/blog/item/498d8b1982249074dbb4bd4c.html

热点排行