1. 程式人生 > >Struts2 資料標籤(常用)

Struts2 資料標籤(常用)

property標籤

        這些property標籤用於獲取一個值的屬性,如果沒有指定,它將預設為在值棧的頂部。

引數

名稱 必填 預設 型別 描述
default false String 如果屬性是null則顯示的default值
escape false true Boolean 是否escape HTML
value false Object value to be displayed
id false Object/String 該元素標識

例子

<s:push value="myBean">
    <!-- Example 1: -->
    <s:property value="myBeanProperty" />

    <!-- Example 2: -->TextUtils
    <s:property value="myBeanProperty" default="a default value" />
</s:push>

Example 1 顯示出myBean’s getMyBeanProperty() 的執行結果. Example 2 顯示出myBean’s getMyBeanProperty() 的執行結果,如果是null,則顯示預設(default)值.

set標籤

        1.這些set標籤為指定範圍內的變數賦值。當你希望將變數分配給複雜表示式,然後僅僅引用該變數而不是複雜表示式時,它是很有用的。可應用的範圍是應用程式,會話,請求,頁面和action。

        2.set標籤賦予變數一個特定範圍內的值. 當希望給一個變數賦一個複雜的表示式,每次訪問該變數而不是複雜的表示式時用到.其在兩種情況下非常有用: 複雜的表示式很耗時 (效能提升) 或者很難理解 (程式碼可讀性提高).

引數

名稱 必填 預設 型別 描述
name true String 變數的名字
scope false action String 變數作用域,可以為application, session, request, page, 或action.
value false Object/String 將會賦給變數的值
id false Object/String 該元素標識

例子

<s:set name="myenv" value="environment.name"/>
<s:property value="myenv"/>

push標籤

        這些push標籤用於推送堆疊中的值,以簡化使用。

引數

名稱 必填 預設 型別 描述
value true Object/String 要push到堆疊中的值
id false Object/String 該元素標識

例子

<s:push value="user">
    <s:propery value="firstName" />
    <s:propery value="lastName" />
</s:push>

將user的值push到棧中,從而使property標籤的能夠獲取user的屬性(firstName, lastName etc)

<s:push value="myObject">                              ----- (1)
      <s:bean name="jp.SomeBean" id="myBean"/>        ----- (2)
		    <s:param name="myParam" value="top"/>        ----- (3)
      </s:bean>
</s:push>

當在 (1) 時, myObject 在棧頂 當在 (2) 時, jp.SomeBean 在棧頂, 也在stack’s context中以myBean為鍵值存在 當在 (3) 時, top得到jp.SomeBean的例項

<s:push value="myObject">                                       ---(A)
   <s:bean name="jp.SomeBean" id="myBean"/>                   ---(B)
      <s:param name="myParam" value="top.mySomeOtherValue"/>  ---(C)
   </s:bean>
</s:push>

當在 (A) 時, myObject 在棧頂 當在 (B) 時, jp.SomeBean 在棧頂, 也在stack’s context中以myBean為鍵值存在 當在 © 時, top指向jp.SomeBean的例項.所以top.mySomeOtherValue呼叫SomeBean的 mySomeOtherValue() 方法

<s:push value="myObject">                                 ---- (i)
   <s:bean name="jp.SomeBean" id="myBean"/>             ---- (ii)
      <s:param name="myParam" value="[1].top"/>         -----(iii)
   </s:bean>
</s:push>

當在 (i) 時, myObject 在棧頂 當在 (ii) 時, jp.SomeBean 在棧頂, 後面是myObject 當在 (iii) 時, [1].top返回myObject

param標籤

        為其他標籤提供引數,比如include標籤和bean標籤. 引數的name屬性是可選的,如果提供,會呼叫Component的方法addParameter(String, Object),如果不提供,則外層巢狀標籤必須實現UnnamedParametric介面(如TextTag).

該標籤的兩個屬性

name (String) - 引數名 value (Object) - 引數值 注意 : value的提供有兩種方式,通過value屬性或者標籤中間的text,不同之處我們看一下例子:

<param name="color">blue</param> <-- (A) -->
<param name="color" value="blue"/> <-- (B) -->

(A)中,引數值會以String的格式放入statck. (B)中該值會以java.lang.Object的格式放入statck. 引數

名稱 必填 預設 型別 描述
name false String 引數名
value false 從stack中evaluated的值 Object/String value表示式
id false Object/String 引用元素的id

例子

<pre>
<ui:component>
 <ui:param name="key"     value="[0]"/>
 <ui:param name="value"   value="[1]"/>
 <ui:param name="context" value="[2]"/>
</ui:component>
</pre>

這裡key作為識別符號,value在當前的OgnlValueStack上被當作一個OGNL的表示式來求值獲得結果.(原文:where the key will be the identifier and the value the result of an OGNL expression run against the current OgnlValueStack.) 寫到這裡小編寫不下去了,累T_T

date標籤

        data標籤允許以快速簡單的方式格式化日期。使用者可以指定自定義日期格式(例如“dd/MM/yyyy hh:mm”),可以生成易讀的符號(例如“在2小時14分鐘內”),或者可以使用屬性檔案中的key:“struts.date.format”來回退到預定義的格式。

引數 1、Name: 2、Nice: 指定是否輸出指定日期與當前時刻之間的時差。 可以設為true或者false,表示是否漂亮地顯示日期,如果設定為true,那麼將FORMAT屬性將不會生效 例項:http://blog.csdn.net/z69183787/article/details/20538473 3、Format (1)當nice="false"時,format屬性將起作用,如:“yyyy- MM-dd hh:mm:ss”,其中,y是年(year),M是月(Month),d是日(day),h是小時(hour,12小時制),H也是小 時(hour,24小時制),m是分鐘(minute),s是秒(second)。 (2)當format未設定時,將會使用預設的格式DateFormat.MEDIUM format

例子

<s:date name="person.birthday" format="dd/MM/yyyy" />
<s:date name="person.birthday" format="%{getText('some.i18n.key')}" />
<s:date name="person.birthday" nice="true" />
<s:date name="person.birthday" />

debug標籤

        url/param/a(重要~用來生成url連結的)

引數

名稱 必填 預設 型別 描述
id string FALSE

action標籤

        通過指定名稱空間和action名稱,該標籤允許你在jsp頁面直接呼叫Action. 標籤體用來渲染Action執行結果. 除非你設定了executeResult引數為true,否則你在xwork.xml中為該Action指定的Result Processor不會執行.

引數

名稱 必填 預設 型別 描述
id false String 如果設定,將作為該Action在棧中的標識
name true String action名字(不包括字尾,如.action)
namespace false String action所在名稱空間
executeResult false false Boolean Action的result是否需要被執行
ignoreContextParams false false Boolean request中的引數是否需要傳入該Action

例子

<div>Tag to execute the action</div>
<br />
<s:action name="actionTagAction" executeResult="true" />
<br />
<div>To invokes special method  in action class</div>
<br />
<s:action name="actionTagAction!specialMethod" executeResult="true" />