Struts2中的標籤介紹 s:property s:set s:bean s:push s:date

幾個比較容易混淆的標籤,記錄一下

===================================================================

   隨着各個框架的推出,各框架都有了自己專有的標籤庫。除了有官方的JSTL特別優秀外,其它各框架推的也相當的優秀。有了標籤,我們可以讓UI和業務邏輯 不在糾纏在一起,也爲操作模型層提供了方便。
        在學Struts2框架的時候,必須學習它的標籤,否則也是一種遺憾。
        在此我假設JSP文件中聲明瞭<%@ taglib prefix="s" uri="/struts-tags" %>,以S爲前綴。
        1、<s:property/>
              屬性標籤是用來獲取ActionContext中的內容。例:

<%
      session.setAttribute("param1","param1");
      request.setAttribute("param2","param2");
%>
<s:property value="#session.param1"/><br>
   <s:property value="#request.param2"/><br>
   <s:property value="#session['param1']"/><br>
   <s:property value="#request['param2']"/><br>
   <s:property default="defaultvalue" value="s"/><br>
         注:在取四種屬性範圍裏的值時,我們要使用OGNL語言來操作,如第五行到第八行所示。在獲取Action中的屬性時,我們不用使用OGNL語言來操作, 直接往value屬性中寫入要取得的屬性名則可,如果要獲取Action中某屬性中的屬性時,使用點操作符則可,如<s:property value="company.name"/>。如果要顯示默認值的話,使用defaut屬性,如第九行所示,這時無論value屬性取何值,均顯 示默認值。
        2、<s:set/>
         set標籤用於爲指定的變量設定值,它對值棧中的表達示進行求值並將其賦給指定的變量名。如下所示:

<%
      session.setAttribute("param1","param1");
   %>

<s:set name="param" value="#session.param1"></s:set>
<s:property value="#param"/><br>
<s:set name="param" value="#session.param1" scope="request"></s:set>
<s:property value="#request.param"/><br>
<s:set name="param" value="#session.param1" scope="session"></s:set>
<s:property value="#session.param"/><br>
<s:set name="param" value="#session.param1" scope="application"></s:set>
<s:property value="#application.param"/><br>
          注:scope的值爲四種屬性範圍中的一種。
           3、<s:bean/>
            可以使用該標籤創建簡單的JavaBean並把它壓入valuestack中。該標籤還可以使用<s:param>設定參數的值。如下所示:

<s:bean name="user" id="user"><!-沒有scope屬性,會被壓入valuestack中->
           <s:param name="name" value="'flyever,zhang'"></s:param>
           <s:param name="gender" value="'male'"></s:param>
   </s:bean>
         注:運行該程序時還需新建一User類。在寫往value屬性中寫入字符串值時,一定要用單引號括起來,否則會被認爲是一個變量。
         4、<s:push/>
            該標籤可以把程序員在ActionContext中引用的對像壓入valuestack中,爲以後訪問對象提供了方便。如下所示:

<s:push value="#request.user">
           <s:property value="name"/>
           <s:property value="gender"/>
   </s:push>  
        注:此處user對象之前被手動存於request中。
        5、<s:date/>
        用於格式化日期,最後輸出到頁面中。如下所示:

<%
      Date date=new Date();
      session.setAttribute("date",date);
   %>
   <s:date name="#session['date']" format="yy/MM/dd"></s:date>
        此處沒有列出各標籤的全部屬性,此處列出的屬性均爲常用屬性,如需獲得更詳細的信息可以參考官方文檔。程序均親自調試過,如有問題,請留言。

發佈了43 篇原創文章 · 獲贊 17 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章