0%

Struts标签使用举例 - logic篇

  1. logic:empty
    该标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。该标签用于以下情况:
    1)当Java对象为null时;
    2)当String对象为””时;
    3)当java.util.Collection对象中的isEmpty()返回true时;
    4)当java.util.Map对象中的isEmpty()返回true时。

示例:

1
2
<logic:empty name="userList">   
</logic:empty>

该句等同于:

1
2
if (userList.isEmpty()) {   
}
  1. logic:notEmpty
    该标签的应用正好和logic:empty标签相反,略。

  2. logic:equal
    该标签为等于比较符。
    示例1:比较用户的状态属性是否1,若为1,输出”启用”;

1
2
3
<logic:equal name="user" property="state"   value="http://www.blog.com.cn/1">
启用
</logic:equal>

示例2:如果上例中的value值是动态获得的,例如需要通过bean:write输出,因struts不支持标签嵌套,可采用EL来解决该问题。

1
2
<logic:equal name="charge" property="num"   value="${business.num}">   
</logic:equal>
  1. logic:notEqual
    该标签意义与logic:equal相反,使用方法类似,略。

  2. logic:forward
    该标签用于实现页面导向,查找配置文件的全局forward。
    示例:

    1
    <logic:forward name="index"/>
  3. logic:greaterEqual
    为大于等于比较符。
    示例:
    当某学生的成绩大于等于90时,输出“优秀”:

    1
    2
    3
    <logic:greaterEqual name="student" property="score" value="90">
    优秀
    </logic:greaterEqual>
  4. logic:greaterThan
    此为大于比较符,使用方法同logic:greaterEqual,略;

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

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

  7. logic:match
    此标签比较对象是否相等;
    eg1. 检查在request范围内的name属性是否包含”amigo”串:

    1
    2
    3
    <logic:match name="name" scope="request" value="amigo">
    <bean:write name="name"/>中有一个“amigo”串。
    </logic:match>

    eg2. 检查在request范围内的name属性是否已“amigo”作为起始字符串:

    1
    2
    3
    <logic:match name="name" scope="request" value="amigo" location="start">
    <bean:write name="name"/>以“amigo”作为起始字符串。
    </logic:match>

    eg3.

    1
    2
    3
    <logic:match header="user-agent" value="Windows">
    你运行的是Windows系统
    </logic:match>
  8. logic:notMatch
    此标签用于比较对象是否不相同,与logic:match意义相反,使用方法类似,略。

  9. logic:messagePresent
    该标签用于判断ActionMessages/ActionErrors对象是否存在;
    eg. 如果存在error信息,将其全部输出:

    1
    2
    3
    4
    5
    <logic:messagePresent property="error"> 
    <html:messages property="error" id="errMsg" >
    <bean:write name="errMsg"/>
    </html:messages>
    </logic:messagePresent >
  10. logic:messagesNotPresent
    该标签用于判断ActionMessages/ActionErrors对象是否不存在,使用方法与logic:messagePresent类似,略

  11. logic:present
    此标签用于判断request对象传递参数是否存在。
    eg1. user对象和它的name属性在request中都存在时,输出相应字符串:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <logic:present name="user" property="name">
    user对象和该对象的name属性都存在
    </logic:present>
    ```jsp
    eg2. 若有一个名字为“user”的JavaBean,输出对应字符串:
    ```jsp
    <logic:present name="user" >
    有一个名字为“user”的JavaBean。
    </logic:present>

    eg3.

    1
    2
    3
    <logic:present header="user-agent">
    we got a user-agent header.
    </logic:present>
  12. logic:notPresent
    此标签用于判断request对象传递参数是否不存在,意义与了logic:present相反,使用方法类似,略。

  13. logic:redirect
    该标签用于实现页面转向,可传递参数。
    eg1.

    1
    <logic:redirect href="http://www.chinaitlab.com"/>
  14. logic:iterator
    用于显示列表为collection的值(List ,ArrayList,HashMap等)。
    eg1. 逐一输出用户列表(userlList)中用户的姓名:

    1
    2
    3
    <logic:iterate  id="user" name="userList">
    <bean:write name="user" property="name"/><br>
    </logic:iterate>

    eg2. 从用户列表中输出从1开始的两个用户的姓名

    1
    2
    3
    <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标签的嵌套举例

    1
    2
    3
    4
    5
    6
    <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>
坚持原创及高品质技术分享,您的支持将鼓励我继续创作!