Struts標(biāo)簽庫詳解 (3)

          Bean 標(biāo)簽庫
                  此標(biāo)簽庫和Java Bean有很強的關(guān)聯(lián)性,設(shè)計的本意是要在JSP JavaBean 之間提供一個接口。Struts 提供了一套小巧有用的標(biāo)簽庫來操縱JavaBean和相關(guān)的對象:cookie header parameter definewritemessage includepageresourcesizestruts
          1.        bean:cookiebean:headerbean:parameter
          這三個標(biāo)簽用來重新得到cookie, request headerrequest parameter
          bean:header
          bean:parameter標(biāo)簽定義了一個字符串;bean:cookie標(biāo)簽定義了一個Cookie對象。你可以使用value屬性做為默認值。如果找不到指定的值,且默認值沒有設(shè)定的話,會拋出一個request time異常。如果你期望返回多個值的話,可把multiple屬性設(shè)為true
          <bean:cookie id="sessionID" name="JSESSIONID" value="JSESSIONID-ISUNDEFINED"/>
          //
          這段代碼定義了一個名為sessionID的腳本變量,如果找不到一個名為JSESSIONIDcookie,那sessionID
          //
          的值就被設(shè)置為JSESSIONID-ISUNDEFINED
          2.       
          下面代碼會輸出一些Cookie對象的一些屬性:
          <jsp:getProperty name="sessionID " property="comment"/> …
          <jsp:getProperty name="sessionID" property="domain"/> …
          <jsp:getProperty name="sessionID" property="maxAge"/> …
          <jsp:getProperty name="sessionID" property="path"/> …
          <jsp:getProperty name="sessionID" property="value"/> …
          <jsp:getProperty name="sessionID" property="version"/> …
          3.       
          下面是在request中輸出所有header的例子:
          <%
                  java.util.Enumeration names =((HttpServletRequest) request).getHeaderNames();
          %>

          <%
                  while (names.hasMoreElements()) {
                  String name = (String) names.nextElement();
          %>
          <bean:header id="head" name="<%= name %>"/>
          … <%= name %>
          … <%= head %>

          <%
                  }
          %>
          4.       
          下面是parameter的例子:
          <bean:parameter id="param1" name="param1"/>
          <bean:parameter id="param2" name="param2" multiple="true"/> //
          此處定義了一個param2[]
          <bean:parameter id="param3" name="param3" value="UNKNOWN VALUE"/>
          5.       
          于其它標(biāo)簽結(jié)合使用:
          <bean:header id="browser" name="User-Agent"/>
          <P>You are viewing this page with: <bean:write name="browser"/></P>
          ----------------------------------------------------------------------------------------------------------------------------------
          <bean:cookie id="username" name="UserName" scope="session"
          value="New User" />
          <P>Welcome <bean:write name="username" property="value"/!</P>
          //
          根據(jù)cookie創(chuàng)建一個新的Bean,如果用戶名稱已經(jīng)存儲在cookie中,它就不顯示為一個新用戶。
          6.       
          7.        bean:define:有三個用途。
          一是定義新字符串常量:
          <bean:define id="foo" value="This is a new String"/>
          <bean:define id="bar" value='<%= "Hello, " + user.getName() %>'/>
          <bean:define id="last" scope="session" value='<%= request.getRequestURI() %>'/>
          8.       
          二是復(fù)制一個現(xiàn)有的bean給新的bean
          <bean:define id="foo" name="bar"/>   
          <bean:define id="baz" name="bop" type="com.mycompany.MyClass"/> //
          定義腳本變量的類型,默認為Object
          9.       
          三是復(fù)制一個現(xiàn)有的bean的屬性給新的bean
          <bean:define id="bop" name="user" property="role[3].name"/>
             <bean:define id="foo" name="bar" property="baz" scope="request" toScope="session"/>
             //toScope
          屬性指新beanscope,默認為page   
          10.     上段代碼的意思是把名為barbeanbaz屬性賦值給foofoo的類型為String(默認)
          11.     bean:include
          這個標(biāo)簽和bean:include標(biāo)簽和相似,不同點就是它定義了一個可以復(fù)用的腳本變量。用id屬性命名一個新的腳本變量,還支持forwardhrefpagetransaction.屬性,和html:link中的屬性意義一樣。
          <bean:include id="footerSpacer" page="/long/path/footerSpacer.jsp"/>
          然后你能夠在多個地方(scopepage)調(diào)用:
          <bean:write name="footerSpacer" />
          12.    
          13.     bean:message
          用來實現(xiàn)對國際化的支持的一個標(biāo)簽,配合java.util數(shù)據(jù)包中定義的LocaleResourceBundle類來完成這個任務(wù),用java.text.MessageFormat類配置消息的格式。
             
          首先要指定資源文件的名稱。這個文件會包含用默認語言編寫的在程序中會出現(xiàn)的所有消息,這些消息以關(guān)鍵字-的形式存儲。文件需要存儲在類路徑下,路徑要作為初始化參數(shù)傳送給ActionServlet
             
          實現(xiàn)國際化的規(guī)定:所有的資源文件必須都存儲在基本資源文件所在的目錄中。基本資源文件包含的是用默認地區(qū)語言-本地語言編寫的消息。如果基本資源文件的名稱是ApplicationResources.properties,那么用其他特定語言編寫的資源文件的名稱就應(yīng)該是ApplicationResources_xx.properties(xxISO編碼,如英語是en)。因此這些文件應(yīng)包含相同的關(guān)鍵字,但關(guān)鍵字的值是用特定語言編寫的。
             
          然后,ActionServlet的區(qū)域初始化參數(shù)必須與一個true值一起傳送,這樣ActionServlet就會在用戶會話中的Action.LOCALE_KEY關(guān)鍵字下存儲一個特定用戶計算機的區(qū)域?qū)ο蟆,F(xiàn)在可以運行一個國際化的web站點,它可以根據(jù)用戶計算機上的設(shè)置的區(qū)域自動以相應(yīng)的語言顯示。

          使用特定的字符串來替換部分消息:
          在資源文件中的定義:info.myKey = The numbers entered are {0},{1},{2},{3}
          標(biāo)記的使用:<bean:message key="info.myKey" arg0="5" arg1="6" arg2="7" arg3="8"/>
          Jsp
          頁面的顯示:The numbers entered are 5,6,7,8 // 最多支持4個參數(shù)
          14.    
          15.     bean:page:把Jsp中的內(nèi)部對象做為腳本變量。
          <bean:page id="requestObj" property="request"/>
          16.    
          17.     bean:resource:獲得應(yīng)用程序的資源,這個資源可以是一個String或從java.io.InputStream中讀入。使用ServletContext.getResource()ServletContext.getResourceAsStream() 方法檢索web應(yīng)用中的資源,如果在檢索資源時發(fā)生問題,就會產(chǎn)生一個ruquest time異常。
          <bean:resource id="webxml" name="/WEB-INF/web.xml"/>
          18.     使用input屬性時,資源會做為一個InputStream,如果不指定就被當(dāng)成一個String
          19.     bean:size:得到存儲在arraycollectionmap中的數(shù)目,類型為java.lang.Integer
          <bean:size id="count" name="employees" />
          20.    
          21.     bean:struts:復(fù)制Struct 對象(三種類型)給新的beanscopepage
          <bean:struts id="form" formBean="CustomerForm"/>   
          <bean:struts id="fwd" forward="success"/>
          <bean:struts id="map" mapping="/saveCustomer"/>
          22.    
          23.     bean:write:以字符串形式輸出bean的屬性值。
          filter
          屬性:設(shè)為true時,將HTML保留字轉(zhuǎn)換為實體("<" 轉(zhuǎn)換為 &lt);
          ignore
          屬性:如果對象不存在,不會拋出異常。
          <bean:write name="userRegistration" property="email" scope="request"/>

          posted on 2009-02-15 17:30 丁克設(shè)計 閱讀(91) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          留言簿(6)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 建湖县| 古浪县| 柳江县| 都昌县| 南和县| 浦县| 安顺市| 扎鲁特旗| 囊谦县| 海宁市| 乌鲁木齐市| 鄢陵县| 武强县| 平阴县| 江永县| 钟山县| 信宜市| 玉山县| 陈巴尔虎旗| 锡林浩特市| 阿拉善右旗| 乌拉特后旗| 库尔勒市| 疏附县| 布尔津县| 察雅县| 宜都市| 石楼县| 万源市| 利津县| 台北县| 三门峡市| 洪泽县| 平果县| 称多县| 大余县| 湘西| 鹿泉市| 长岭县| 林州市| 南召县|