Struts Bean標籤

Struts Bean標籤庫中的標籤可以訪問已存在的JavaBean以及它們的屬性,還可以定義新的Bean,把它存放在page範圍內或用戶指定的範圍內,供網頁其他元素訪問。Bean標籤庫大概分爲三類:

  • 用於訪問HTTP請求信息或JSP隱含對象的Bean標籤
  • 用於訪問Web應用資源的Bean標籤
  • 用於定義或者輸出JavaBean的Bean標籤

訪問HTTP請求信息或JSP隱含對象
  • <bean:cookie>:訪問Cookie信息
  • <bean:header>:訪問HTTP請求中的Header信息
  • <bean:parameter>;訪問請求參數。
  • <bean:page>:訪問JSP隱含對象。

1.<bean:cookie>標籤

該 標籤可以檢索保存在瀏覽器中的Cookie,具有屬性id,name,multiple,value,id是對cookie在該頁面中的唯一標識,在頁面 其它地方可以通過id進行引用。相當於用cookie直接引用。Name是相應的cookie名稱。Multiple可以賦予任意值,如果設置了該屬性, 可以檢索出所有和Cookie名字匹配的Cookie名字匹配的Cookie,此時,id屬性定義了一個Cookie數組類型的變量,而不是單個 Cookie類型的變量。例如:

<bean:cookie id="myCookie" name="tags/cookiedemo" value="ddddddddd"/>
        <bean:write name="myCookie" property="name"/>
        <bean:write name="myCookie" property="value"/>
<%

      String names=myCookie.getName();
      String value=myCookie.getValue();
      out.println("this cookie name is "+names+",value is "+value+"");

%>

2.<bean:header>標籤

該標籤用於檢索HTTP請求中的Header信息。如果沒有指定multiple屬性則依據剛取回的值創建一個String類型的bean。如果指定了multiple屬性則依據剛取回的值創建一個String[]類型的數組。例如:

<logic:present header="User-Agent">
      <!-- 其它標籤通過綁定到page作用域中的屬性使用該值 -->
      您的瀏覽器是<bean:header id="userAgent" name="User-Agent"/>
      <bean:write name="userAgent" /><br/>
      <!-- JSP腳本通過scripting變量使用該值 -->
      <%
        out.println("您的瀏覽器是"+userAgent+"。<br/>");
%>
</logic:present>
     <%
          String id = "userAgent";
          String name = "User-Agent";
          String value = ((HttpServletRequest)pageContext.getRequest()).getHeader(name);
          out.println("============="+value);

      %>

3.<bean:parameter>標籤

該標籤用於檢索HTTP請求參數,具有以下屬性:
id屬性:定義一個java.lang.String類型的變量,這個變量存放在page範圍內。
name屬性:指定請求參數名。
value屬性:請求指定參數的默認值

如果沒有指定multiple屬性則依據剛取回的值創建一個String類型的bean。如果指定了multiple屬性則依據剛取回的值創建一個String[]類型的數組。例如:

<html:link page="/parameter2.jsptestString=this+is+a+test&testInt=123456">
         請求參數
</html:link>

<bean:parameter id="test1" name="testString" value="" />
       The first test is: <bean:write name="test1" />

<bean:parameter id="test2" name="testInt" value=""/>
       The second test is:<bean:write name="test2"/>

4.<bean:page>標籤

該標籤用於檢索獲取JSP隱含對象,如session、request和response等,具有以下屬性:
id屬性:定義了一個引用隱含對象的變量,這個變量存放在page範圍
property屬性:指定隱含對象的名字,可選值包括application,config,request,response,session 例如:

<bean:page id="mySession" property="session"/>

<%
      out.println("Session time:"+mySession.getCreationTime());

%>

<bean:message>:顯示Resource Bundle中的消息。
<bean:resource>;把Web資源裝載到一個JavaBean中。
<bean:struts>;訪問Struts的內在配置對象。
<bean:include>;包含一個web資源。

1.<bean:include>標籤
該 標籤用語將其他web資源包含進當前頁面中,和標準的JSP標籤<jsp:include>很類似,都可以用來包含其他Web資源的內容,區 別在於<bean:include>標籤把其他的Web資源的內容存放在一個對象中,而不是直接顯示到網 頁,<bean:include>標籤的id屬性定義一個代表其他Web資源的變量。
<bean:include id="value" page="/index.jsp"/>      //在當前資源中
<bean:write name="value" filter="false"/><br/>
// filter爲true則爲原文件
<%
      out.println(value);
%>
2.<bean:message>標籤
該標籤用與顯示資源文件中的消息文本。該標籤有一個bundle屬性,它和struts-config.xml文件中的messsge-resources標記內的key屬性對應。
<message-resources parameter="com.resources" key="beanmessage">
//struts-config
message1=this is a test!
message2=this is a test too!
//resource中
<bean:message bundle="beanmessage" key="message1"/>
//jsp中
3.<bean:resource>標籤
該標籤用於檢索、獲得Web資源內容,如:網頁的源代碼。該標籤的屬性有:id有其他標籤一樣,name指定Web資源的路徑,input如果沒有設置, 則id屬性默認爲一個字符類型對象,如果給input賦值yes,則id屬性所定義的對象爲java.IputStream。例如:
  
     <bean:resource id="indexpage" name="/index.jsp" input="yes"/>
     <bean:write name="indexpage" filter="false"/>
4.<bean:struts>標籤
該標籤用於獲取Struts框架內的一些對象,如AationForm和ActionForward等。。<bean:struts>標籤的 id屬性定義一個page範圍的變量,用來引用Struts框架的內在對象,必需設置formbean,forward,mapping屬性中的一個屬 性,來指定被引用的Struts內在對象。
formbean屬性:指定ActionFormBean對象,和struts配置文件的<form-bean>元素匹配。
forward屬性;指定ActionForward對象,和配置文件的<global-forwards>元素的<forward>子元素匹配。
mapping屬性:指定ActionMapping對象,和配置文件的<action>元素匹配
例如:
<bean:struts id="listFormBean" formBean="listForm"/>
name:<bean:write name="listFormBean" property="name"/><br/>
type:<bean:write name="listFormBean" property="type"/><br/>
dynamic:<bean:write name="listFormBean" property="dynamic"/><br/>


<bean:define>:用於定義一個變量。
<bean:write>: 顯示JavaBean屬性的內容。
<bean:size>: 獲得集合對象或數組對象的長度。
1.<bean:define>標籤

該標籤用於定義一個變量,id屬性指定變量的名字,toScope屬性指定這個變量的存放範圍,如果沒有設置,則這個變量存放在page範圍內,給id屬性定義的變量賦值有三種方式:
第一種是,通過value屬性直接賦值;
第二種是,通過name和porperty共同指定一個變量來給id所定義的變量,name——bean,porperty——屬性;
第三種是,通過type屬性和name聯合指定id所定義的變量類型,type——id定義變量的完整類型,name——存在的javaBean。例如:
     <bean:define id="string" value="this is a test"/>
     <bean:write name="string"/>--%>
<%
     Date d = new Date();
     pageContext.setAttribute("currDate",d);
%>
<bean:define id="milliseconds" name="currDate" property="time"/>
當前時間距離1970年1月1日的毫秒數爲:<bean:write name="milliseconds"/>
2.<bean:size>標籤

該標籤用於獲取集合或者數組的長度。
id屬性定義一個Integer類型的變量,那麼屬性指定已經存在的Map,Collection或數組變量,id屬性定義的變量值爲Map,collection或數組的長度。
name屬性爲對象名字。例如:
   
      <%
ArrayList testlist=new ArrayList();
testlist.add(new Integer(1));
testlist.add(new Integer(2));
testlist.add(new Integer(3));
      pageContext.setAttribute("listforcount",testlist);
      %>
        <bean:size id="size" name="listforcount"/>
        長度爲:<bean:write name="size"/>
3.<bean:write>標籤

該標籤用於輸出各種類型的對象,有點類似與System.out.println()。例如:
<%
String a = "string for test";
pageContext.setAttribute("test",a);
%>
<bean:write name="test"/>


轉載自http://www.cnblogs.com/thankgoodness/articles/1227978.html
發佈了44 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章