Struts bean

bean標籤庫中的標籤分爲3類:
 1、用於訪問HTTP請求信息或JSP隱含對象的Bean 標籤。
      a、<bean:header>標籤:
        該標籤用於檢索HTTP請求中的Header信息,它具有以下屬性:
         id  屬性:定義一個java.lang.string類型的變量,這個變量存放在page範圍內。
   name 屬性:指定需要檢索的Header 信息。
   如:<bean:header id="lang" name="Accept-Language"/>
         <bean:write neme="lang"/>輸出lang得到的信息。
     b、<bean:parameter>標籤,用於檢索HTTP請求參數
        
id屬性:定義一個java.lang.string類型的變量,這個變量存放在page範圍內
        name屬性:指定請求參數名
      value屬性:指定請求參數的默認值。

       例子<bean:parameter id="kk" name="tesarg" value="noarg"/>               
       
        定義了一個名爲 kk 的字符串類型變量,默認值爲 noarg,如果請求URL不包含
     “tesarg”請求參數,如
http://localhost:8080/beanaceio/kkka.jsp  那麼, kk 變量          的值爲 noarg。

       例子:包含請求參數 tesarg 的URL
        如
http://loalhost:8080/beanweb/kka.jsp?tesarg=111&tesarg=222&tesarg=33
        那麼:這時 kk 的值爲第一個 “tesarg” 請求參數的值 111。
       如果希望檢索出所有和參數名匹配的請求參數,應設置<bean:parameter>標籤
       的 multiple 屬性(可以設置爲任意一個字符串),此時 id 屬性定義的變量不再
       是 String 類型,而是字符串數組類型,用於存放所有和 name 屬性匹配的請求
       參數值。
  
       <bean:parameter id="kk" multiple = "yes" name = "testarg" value = "noarg"/>
        輸出:
        <%  for (int i=0;i < kk.length; i++){
                      out.write( kk[i] );  
          } %>

        c、<bean:cookie> 標籤:

         <bean:cookie id="cookie" name="cookiename"  value="firstvalue"/>
          id  屬性定義一個javax.servlet.http.Cookie;
          name  指定 Cookie 的名字;
          value   指定 Cookie 的默認值,如果由name 屬性指定的 Cookie 不存在,就
      使用 value 屬性指定的默認值。

        d、<bean:page>  標籤:
   <bean:page>標籤用於檢索 jsp 隱含對象,如session、request和             response等。
        id 屬性:定義一個引用隱含對象的變量,這個變量存放在page範圍內。
        property 屬性:指定隱含對象的名字,包括application、config、request、
                                 response 和 session。
        
<bean:page id="this_session" property="session"/>
        
       
 2、用於訪問Web應用資源的Bean標籤。
        <bean:message>標籤:
   用於輸出 Resource Bundle 中的一條消息。
  bundle 屬性:指定 Resource Bundle, 他和 Struts 配置文件的
                             <message-resource>元素的 key 屬性匹配。
         如果沒有設置 bundle 屬性,就採用默認的Resource Bundle.
      在 struts 配置文件中配置了倆個 Resource Bundle。如下:
<message-resources parameter="ApplicationResources"/>(沒有指定 key屬性,因此是默認的 Resource Bundle 他的資源文件爲   ApplicationResources.properties)

 <message-resources parameter="SpecialResources"  key="special"/>,指定key屬性爲 “special”,他的資源文件爲 SpecialResources.properties.

  <bean:message>標籤中指定消息key有三種方式:

    a:<bean:message bundle="special"    key = "hello"/>,使用key屬性直接指定消息
  key;指的就是,從struts配置文件中查找 key 值爲 specia 的Resource Bundle屬性   文件,再在該配置屬性文件中查找 值 “hello”對應的 相關培植。
 
    b 、方式二:
    
    name屬性指定一個可以轉化爲字符串的變量,這個變量的字符串值爲消息 key,  
      <% reqeust.setAttribute("stringBean","hello");%>
      <bean:message bundle="special" name="stringBean"/>

   c、方式三:

     同時指定<bean:message>標籤的name 屬性和 property 屬性。name屬性指定
   一個javabean,property屬性指定 javabean 的一個屬性,這個javabean的屬性
   的值就是消息key。
  <% SomeBean bean = new SomeBean();
           bean.setName("hello");
           request.setAttribute("someBean",bean);
      %>
     <bean:message bundle="special" name="someBean" property="name"/> 

     <bean:resource>標籤:用於檢索 web 資源的內容。
      例子:<bean:resource id=resource" name="/testpage.jsp" />,resource變量
   爲字符串類型,他的值爲 testpage.jsp 的源文件內容。
      id 屬性: 定義一個代表 Web 資源的變量。
      name 屬性:指定web 資源的路徑;
      input 屬性:如果沒有設置input屬性,則id屬性定義的變量爲字符串類型:如果
  指定 input 屬性(可以是任意字符串),則id屬性定義的變量爲java.io.InputStream
  類型;

    <bean:struts>標籤
    用於檢索struts框架內在的對象,如 ActionFormBean、ActionForward 或者
 ActionMapping,<bean:struts> 標籤的id屬性定義一個 page 範圍的變量,用
   來引用 Struts框架的內在對象,必須設置 formbean,forward和mapping屬性中的
 一個屬性,來指定被引用的 Struts 內在對象。
 a、formbean屬性:指定 ActionFormBean 對象,和Struts 配置文件的<form-bean>
  元素匹配。
 b、forward 屬性:指定 ActionForward 對象,和struts培植文件中<global-forwards>元素的<forward>子元素匹配。
 c、mapping 屬性:指定 ActonMapping 對象,和Struts 配置文件的<action>元素匹配。
    <bean:struts id="kaka"   forward="BeanResource"/>定義了一個名爲“kaka”的
  變量,他引用一個名爲“BeanResource”的 ActionForward 對象,在struts配置
  文件中,與之匹配的<forward>元素:
  <global-forwards>
      <forward name="BeanResource"     path="/BeanResource.jsp"/>
   </global-forwards>
    
 3、用於定義或輸出JavaBean  的 Bean 標籤。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章