輕量級JavaEE企業應用實戰(十五)

數據標籤

數據標籤主要作用提供各種數據訪問相關功能,包含顯示一個Action裏的屬性,以及生成國際化輸出等功能

action標籤

允許在JSP頁面直接調用Action,因此可以指定需要被調用Action的name和namespace。如果指定了executeResult參數的屬性爲true,該標籤還會把Action的處理結果包含到本頁面來
屬性:

var //可選,一旦定義Action將被放入Stack Context中,屬性可用id替代,不推薦
name //必填,指定該標籤調用哪個Action
namespace //可選,指定該標籤調用的Action所在的namespace
executeResult //可選,指定是否將Action的處理結果頁面包含到本頁面,默認false
ignoreContextParams //可選,指定該頁面請求參數是否需要傳入調用的Action,默認false,即將請求參數傳入調用Action

<action name="tag" class="com.action.TagAction">
    <result name="done">success.jsp</result>
</action>

<s:action name="tag" executeResult="true" />

bean標籤

創建一個JavaBean實例。可以使用param傳入屬性,如果需要使用param,則爲對應的JavaBean類提供對應的setter方法;如果想訪問某個屬性,則應該提供getter方法

name //必填,指定實例化的JavaBean的實現類
var //可選,如果指定該屬性,則JavaBean會被放入Stack Context中,並放入requestScope中

在bean標籤的體內時,bean標籤穿件的JavaBean實例位於ValueStack的頂端;一旦該標籤結束,則JavaBean被移除ValueStack,將無法再次訪問該實例;除非指定了var屬性,可通過stack Context訪問

<s:bean name="com.entity.Person" var="p">
    <s:param name="name" value="111" />
    <s:param name="age" value="22" />

    <s:property value="name" />
</s:bean>

<s:property value="#p.name" />
${requestScope.p}

date標籤

用於格式化輸出一個日期,還可以計算指定日期和當前時刻之間的時差

format //可選,根據該屬性指定的格式來格式化日期
nice //可選,用於指定是否輸出指定日期和當前時刻之差,默認false
name //必填,指定要格式化的日期值
var //可選,指定該屬性後,格式化後的字符串將被放入Stack Context中,並放入requestScope中,但不會在頁面輸出

注:
若指定了nice=trueformat屬性,則format屬性失效
若既沒有指定nice=true又沒有指定format,則系統會到國際化資源文件中尋找key爲struts.date.format的消息,將該消息當成格式化文本來格式化日期,如果沒有找到,則默認按照DateFormat.MEDIUM格式輸出

<s:bean var="now" name="java.util.Date" />
<s:date name="#now" format="dd/MM/yyyy" nice="false" />

debug標籤

用於輔助調試,在頁面生成一個超級鏈接,可以查看到ValueStack和Stack Context中的信息

id //無意義,僅是該元素的一個引用ID

include標籤

用於將一個JSP頁面,或者一個Servlet包含到本頁面

value //必填,該屬性需要被包含的JSP頁面或Servlet

<s:include value="included-file.jsp" />

param標籤

主要用於爲其他白哦前提供參數,比如include標籤和bean標籤

name //可選,指定需要設置參數的參數名
value //可選,指定需要設置參數的參數值

注:
如果提供了name屬性,則要求Component提供該屬性的setter方法,系統根據setter方法傳入參數;如果不提供,則外層標籤必須實現UnnamedParametric接口

push標籤

將某個值放到ValueStack棧頂,從而可以更簡單的訪問該值

value //必填,指定需要放到ValueStack棧頂的值

<s:bean name="com.entity.Person" var="p">
    <s:param name="name" value="111" />
    <s:param name="age" value="22" />
</s:bean>

<s:push value="#p">
    <s:property value="age" />
</s:push>

set標籤

用於將某個值放入指定範圍內,如application、session

scope //可選,指定新變量被放置的範圍,可以接受application、session、request、page或action,默認是action
value //可選,指定將付給變量的值;如果沒有指定該屬性,則將棧頂元素賦值
var //可選,指定該屬性,則該值放入ValueStack

<s:bean name="com.entity.Person" var="p">
    <s:param name="name" value="111" />
    <s:param name="age" value="22" />
</s:bean>

<s:set value="#p" name="x" scope="application" />

url標籤

生成一個URL地址,可以通過爲url標籤指定param子元素,從而向指定URL發送請求參數

action //可選,指定生成URL的地址爲Action,如Action不提供,就使用value作爲URL地址
anchor //可選,指定URL的錨點
encode //可選,是否需要對參數進行編碼,默認true
escapeAmp //可選,是否需要對&符號進行編碼,默認true
forceAddSchemeHostAndPort //可選,指定是否需要在URL對應的地址裏強制添加scheme、主機和端口
includeContext //可選,指定是否需要將當前上下文包含在URL地址中
includeParams //可選,指定是否包含請求參數,只能爲none、get或者all,默認get
"method" //可選,指定action的方法。當我們用Action來生成URL時,如果指定該屬性,則URL將鏈接到此namespace的指定Action處
"namespace" //可選,指定命名空間。如果指定該屬性,則URL將鏈接到此namespace的指定Action
porletMode //可選,指定結果頁面的porlet模式
scheme //可選,設置scheme屬性
"value" //可選,指定生成URL的地址值,如果value不提供就用action屬性指定Action作爲URL地址
var //可選,與上述標籤類似
windowState //可選,指定結果頁面的porlet的窗口狀態

<s:url value="editGadget.action" />
<s:url action="showBook">
    <s:param name="author" value="111" />
</s:url>
<s:url includeParams="get">
    <s:param name="id" value="%{'22'}" />
</s:url>
<s:url action="showBook" value="xx">
    <s:param name="author" value="111" />
</s:url>

property標籤

輸出value屬性指定的值,如果沒有個指定value,則默認輸出ValueStack棧頂的值

default //可選,如果輸出的屬性值爲null,則顯示default屬性指定值
escape //可選,指定是否escape HTML代碼,默認true
value //可選
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章