我的Blog我做主^_^

          走向一條通往JAVA的不歸路...

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            64 隨筆 :: 68 文章 :: 77 評(píng)論 :: 0 Trackbacks
          Struts-Logic?標(biāo)簽庫(kù)
          ?

          此標(biāo)簽庫(kù)可以分為三種類型:條件、循環(huán)、轉(zhuǎn)發(fā)/重定向。

          一.) 條件類型

          1. logic:empty和logic:notEmpty
            logic:empty標(biāo)簽判斷腳本變量是否為null,是否是一個(gè)空的字符串(長(zhǎng)度為0),是否是一個(gè)空的collection或map(調(diào)用isEmpty()方法來(lái)判斷)。logic:notEmpty標(biāo)簽類似。
            ?<logic:empty name="myBean">
            ?? The bean is missing
            ?</logic:empty>
            ?<logic:notEmpty name="myBean">
            ?? The bean is not missing
            ?</logic:notEmpty>
            上段代碼表示當(dāng)一個(gè)名為myBean的bean在所有的scope中都不存在時(shí),輸出The bean is missing;存在的話輸出The bean is not missing。
            此標(biāo)簽有三個(gè)屬性:name、property和scope。
          2. logic:equal, logic:notEqual, logic:lessThan, logic:greaterThan,logic:lessEqual, and logic:greaterEqual
            這堆logic:*equal*標(biāo)簽從名字上就能知道意思,它們使用起來(lái)有些笨拙。
            有如下屬性: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。另外還可以檢查當(dāng)前用戶的身份,使用屬性u(píng)ser和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作用域內(nèi)名為myBean的bean是否有一個(gè)prop屬性。
          4. logic:match和logic:notMatch
            比較兩字符串是否相等,可以比較字符串的開始的、結(jié)尾的或其中的某個(gè)部分。
            location屬性:指定從某個(gè)位置開始進(jìn)行比較。
            其它的屬性有: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"的請(qǐng)求參數(shù)是否是"xyz"的子字符串,但是子字符串必須從"xyz"的索引位置1開始(也就是說(shuō)子字符串必須是"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>

          二.) 循環(huán)類型

          logic:iterate
          重復(fù)嵌套在此標(biāo)簽體內(nèi)的指定集合的元素,集合必須為如下類型: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>?
          上面的代碼迭代了一個(gè)employee的集合,是department屬性employees的一個(gè)集合,作用域?yàn)閞equest。

          為了輸出第五個(gè)到第十個(gè)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>

          ?你可以定義一個(gè)變量保存當(dāng)前的索引值:??????
          ?<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>?

          三.) 轉(zhuǎn)發(fā)/重定向類型

          logic:forward和logic:redirect
          logic:forward標(biāo)簽和jsp:forward標(biāo)簽和相似,但它可以使用global forward中的一個(gè)ActionForward:
          ?

          ?<logic:forward name="login" />
          ----------------------------------------------------------------------------------------------------------------------------------
          ?與上面相關(guān)的global forward中的代碼:
          ?<global-forwards>
          ?<forward name="login" path="/loginForm.jsp"/>
          ?</global-forwards>

          logic:redirect標(biāo)簽和上面的標(biāo)簽類似,但它默認(rèn)調(diào)用的方法是response.sendRedirect(),取代了上面的requestDispatcher.forward()。最大的不同是它支持所有html:link標(biāo)簽的屬性,所以你能夠指 定request參數(shù):
          ?<logic:redirect name="login" paramId="employeeId" paramName="employee"


          posted on 2007-01-07 16:04 java_蟈蟈 閱讀(230) 評(píng)論(0)  編輯  收藏 所屬分類: STRUTS
          主站蜘蛛池模板: 石阡县| 色达县| 乡城县| 山东省| 漳州市| 苍南县| 怀集县| 永平县| 龙游县| 即墨市| 建宁县| 广德县| 通化县| 扎鲁特旗| 金阳县| 上栗县| 兴仁县| 景洪市| 益阳市| 罗定市| 嵊州市| 交口县| 台山市| 左权县| 阳朔县| 古交市| 泰宁县| 万源市| 吉林省| 荆州市| 石渠县| 朝阳区| 尚志市| 浪卡子县| 定兴县| 安泽县| 芜湖市| 建德市| 江山市| 西乌珠穆沁旗| 襄城县|