struts标签使用举例

----以下内容摘自互联网

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>
一.) 条件类型

  1. logic:empty和logic:notEmpty
    logic:empty标签判断脚本变量是否为null,是否是一个空的字符串(长度为0),是否是一个空的collection或map(调用isEmpty()方法来判断)。logic:notEmpty标签类似。
    <logic:empty name="myBean">
        The bean is missing
    </logic:empty>
    <logic:notEmpty name="myBean">
        The bean is not missing
    </logic:notEmpty>
    上段代码表示当一个名为myBean的bean在所有的scope中都不存在时,输出The bean is missing;存在的话输出The bean is not missing。
    此标签有三个属性:name、property和scope。
  2. logic:equal, logic:notEqual, logic:lessThan, logic:greaterThan,logic:lessEqual, and logic:greaterEqual
    这堆logic:*equal*标签从名字上就能知道意思,它们使用起来有些笨拙。
    有如下属性:name、property、scope、value、cookie、header、parameter。
    <logic:equal name="bean" property="doubleProperty" value="<%= doub1 %>">
         equal
    </logic:equal>
    <logic:greaterEqual name="bean" property="doubleProperty" value="<%= doub1 %>">
         greaterEqual
    </logic:greaterEqual>
  3. logic:present和logic:notPresent
    检查header、request parameter、cookie、JavaBean或JavaBean propertie是否存在且不等于null。另外还可以检查当前用户的身份,使用属性user和role。
    其它的属性有:name、property、scope、cookie、header、parameter。
    <logic:notPresent name="myBean"   property="prop"   scope="page">
    The bean property bean.prop is present
    </logic:notPresent>
    上段代码检查在page作用域内名为myBean的bean是否有一个prop属性。
  4. logic:match和logic:notMatch
    比较两字符串是否相等,可以比较字符串的开始的、结尾的或其中的某个部分。
    location属性:指定从某个位置开始进行比较。
    其它的属性有:name、property、scope、value、cookie、header、parameter。
    下面的例子是检查浏览器类型:
    <logic:match header="User-Agent" value="Mozilla">
       Mozilla!
    </logic:match>
    <logic:notMatch header="User-Agent" value="Mozilla">
       Not Mozilla :(
    </logic:notMatch>

    检查bean属性是否匹配"hello world"字符串:
    <logic:match name="bean" property="stringProperty" value="hello world">
       Hello World!
    </logic:match>
    <logic:notMatch name="bean" property="stringProperty" value="hello world">
       I'm so sad and lonely.
    </logic:notMatch>

    检查名为"name"的请求参数是否是"xyz"的子字符串,但是子字符串必须从"xyz"的索引位置1开始(也就是说子字符串必须是"y"或"yz"):
    <logic:match parameter="name"   value="xyz"   location="1">
           The parameter name is a sub-string of the string xyz from index 1
    </logic:match>

二.) 循环类型

logic:iterate
重复嵌套在此标签体内的指定集合的元素,集合必须为如下类型:array 、Collection(包括ArrayList和Vector)、Enumeration、Iterator、Map(包括HashMap、Hashtable和TreeMap)。例如:

<logic:iterate id="employee" name="department" property="employees" scope= "request">

<bean:write name="employee" property="username" />

<bean:write name="employee" property="name" />

<bean:write name="employee" property="phone" />

</logic:iterate>
上面的代码迭代了一个employee的集合,是department属性employees的一个集合,作用域为request。

为了输出第五个到第十个employee,需要使用length和offset属性:
<logic:iterate id="employee" name="department" property="employees" scope= "request" length="10" offset="5">

<bean:write name="employee" property="username" />

<bean:write name="employee" property="name" />

<bean:write name="employee" property="phone" />

</logic:iterate>

你可以定义一个变量保存当前的索引值:       
<ol>
<logic:iterate id="element" name="bean" property="stringArray" indexId="index">
<li>
<em>
<bean:write name="element"/>
</em>&nbsp;
[<bean:write name="index"/>]</li>
</logic:iterate>
</ol>

三.) 转发/重定向类型

logic:forward和logic:redirect
logic:forward标签和jsp:forward标签和相似,但它可以使用global forward中的一个ActionForward:
  

<logic:forward name="login" />
----------------------------------------------------------------------------------------------------------------------------------
与上面相关的global forward中的代码:
<global-forwards>
<forward name="login" path="/loginForm.jsp"/>
</global-forwards>

logic:redirect标签和上面的标签类似,但它默认调用的方法是response.sendRedirect(),取代了上面的requestDispatcher.forward()。最大的不同是它支持所有html:link标签的属性,所以你能够指 定request参数:
<logic:redirect name="login" paramId="employeeId" paramName="employee" property="id" />


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值