標(biāo)簽

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Struts1.x系列教程(6):Bean標(biāo)簽庫

系統(tǒng) 1821 0

本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!

Bean 標(biāo)簽庫共有 11 個標(biāo)簽。這些標(biāo)簽可以完成如下五種工作:

1. 獲得 HTTP 請求信息

2. 訪問 Java 對象

3. 訪問 JSP 內(nèi)嵌對象和 Struts 配置對象

4. 訪問 Web 資源和屬性文件

5. 輸出信息

下面我們就來分別介紹一下如何使用 Bean 標(biāo)簽庫中的標(biāo)簽來完成上述的工作。

一、獲得 HTTP 請求信息


使用 Bean 標(biāo)簽庫中的標(biāo)簽可以訪問 Cookie 、 HTTP 請求頭以及請求參數(shù)。

1. <bean:cookie> 標(biāo)簽

<bean:cookie> 標(biāo)簽用于獲得一個 Cookie 對象,并創(chuàng)建一個 page 范圍的變量來保存這個 Cookie 對象。 <bean:cookie> 標(biāo)簽有三個常用屬性:

1 id :用于保存 Cookie 對象的變量名。

2 name Cookie

3 value Cookie 的默認(rèn)值。如果 name 所指的 Cookie 不存在, <bean:cookie> 標(biāo)簽就會創(chuàng)建一個新的 Cookie 對象,而 value 屬性的值就是這個 Cookie 對象的 value 屬性值。如果忽略 value 屬性,當(dāng) <bean:cookie> 標(biāo)簽未找到 name 指寫的 Cookie 時,就會拋出一個 javax.servlet.jsp.JspException 異常。因此,筆者建議在使用這個標(biāo)簽時加上 value 屬性。

2. <bean:header> 標(biāo)簽

<bean:header> 標(biāo)簽用于獲得 HTTP 請求頭字段的值,并創(chuàng)建一個 page 范圍的變量來保存請求頭字段的值。 <bean:header> 標(biāo)簽有三個常用屬性:

1 id :用于保存 HTTP 請求頭字段值的變量名。

2 name HTTP 請求頭字段名。

3 value HTTP 請求頭字段的默認(rèn)值。如果 name 所指的 HTTP 請求頭字段不存在, <bean:header> 標(biāo)簽就會將 value 屬性的值存在 page 范圍的變量中。如果不指定 value 屬性,且指定的 HTTP 請求頭字段不存在時, <bean:header> 標(biāo)簽就會拋出 javax.servlet.jsp.JspException 異常。

3.<bean:parameter> 標(biāo)簽

<bean:parameter> 標(biāo)簽用于獲得 HTTP 請求參數(shù)的值,并創(chuàng)建一個 page 范圍的變量來保存所獲得的 HTTP 請求參數(shù)的值。 <bean:parameter> 標(biāo)簽有三個常用屬性:

1 id :用于保存 HTTP 請求參數(shù)值的變量名。

2 name HTTP 請求參數(shù)名。

3 value HTTP 請求參數(shù)值的默認(rèn)值。如果 name 所指的 HTTP 請求參數(shù)不存在, <bean:parameter > 標(biāo)簽就會將 value 屬性的值存在 page 范圍的變量中。如果不指定 value 屬性,且指定的 HTTP 請求參數(shù)不存在時, <bean:parameter> 標(biāo)簽就會拋出 javax.servlet.jsp.JspException 異常。

下面的例子演示了如何使用本節(jié)所講的三個 Bean 標(biāo)簽來獲得 HTTP 請求信息,在 <samples 工程目錄 > 中建立一個 httpRequestInfo.jsp 文件,代碼如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <% @pagepageEncoding = " GBK " %>
<% @tagliburi = " http://struts.apache.org/tags-bean " prefix = " bean " %>
< html >
< head >
< title > 獲得HTTP請求信息 </ title >
</ head >
< body >
<% -- 測試bean:cookie標(biāo)簽 -- %>
< bean:cookie id ="myCookie" name ="name" value ="default" />
<%
if (myCookie.getValue().equals( " default " ))
{
Cookiecookie
= new Cookie( " name " , " newCookie " );
cookie.setMaxAge(
1000 );
response.addCookie(cookie);
}
%>
${myCookie.value}
<% -- 用EL輸出myCookie的value屬性值 -- %>
<%
// ${myCookie.value}相當(dāng)于如下Java代碼
Cookiecookie
= (Cookie)pageContext.getAttribute( " myCookie " );
out.println(cookie.getValue());
%> < br >
<% -- 測試bean:header標(biāo)簽 -- %>
< bean:header id ="userAgent" name ="user-agent" value ="unknown" />
${userAgent}
< br > <% -- 用EL輸出userAgent的值 -- %>
<% -- 測試bean:parameter標(biāo)簽 -- %>
< bean:parameter id ="myCountry" name ="country" value ="unknown" />
${myCountry}
<% -- 用EL輸出myCountry的值 -- %>
</ body >
</ html >

在IE中輸入如下的URL來測試httpRequestInfo.jsp:

http://localhost:8080/samples/httpRequestInfo.jsp?country=China
<!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->
<!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->

要注意的是,上述的三個 Bean 標(biāo)簽都將變量保存到了 page 范圍內(nèi)(也就是 JSP 內(nèi)嵌對象 pageContext 中),并且不能改變變量的保存范圍。讀者在使用這三個 Bean 標(biāo)簽時應(yīng)注意這一點。

二、訪問 Java 對象

1.<bean:define> 標(biāo)簽

<bean:define> 標(biāo)簽用來將 Java 對象的屬性值保存在變量中。 <bean:define> 標(biāo)簽有五個常用屬性:

1 id :變量名。

2 name Java 對象名。

3 property Java 對象屬性名。

4 scope name 所指的 Java 對象所在的訪問,如果不指定,默認(rèn)是 page 范圍。

5 toScope id 所指的變量要保存的范圍,如果不指定,默認(rèn)是 page 范圍。

2.<bean:size> 標(biāo)簽

<bean:size> 標(biāo)簽用來獲得集合( Map 、 Collection )或數(shù)組的長度。 <bean:size> 標(biāo)簽有兩個常用的屬性:

1 id :一個 Integer 變量

2 name :集合或數(shù)據(jù)的變量名。

下面的例子演示了如何使用本節(jié)所講的兩個 Bean 標(biāo)簽來訪問 Java 對象。在 <samples 工程目錄 > 目錄中建立一個 accessJavaObject.jsp 文件 , 代碼如下

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <% @pagepageEncoding = " GBK " %>
<% @tagliburi = " http://struts.apache.org/tags-bean " prefix = " bean " %>
< html >
< head >
< title > 訪問Java對象 </ title >
</ head >
< body >
<% -- 建立actionform.HtmlTagsForm對象實例 -- %>
< jsp:useBean id ="htmlTagsForm" class ="actionform.HtmlTagsForm" />
< jsp:setProperty name ="htmlTagsForm" property ="name" value ="李寧" />
<% -- 測試bean:define標(biāo)簽 -- %>
< bean:define id ="myBeanVar" name ="htmlTagsForm" property ="name" />
${myBeanVar}
<%
String []arr = new String [ 10 ];
pageContext.setAttribute(
" arr " ,arr);
%>
<% -- 測試bean:size標(biāo)簽 -- %>
< bean:size id ="length" name ="arr" />
${length}
</ body >
</ html >

<!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->

IE 中輸入如下的 URL 來測試 accessJavaObject.jsp

http://localhost:8080/samples/accessJavaObject.jsp

<!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->

三、訪問 JSP 內(nèi)嵌對象和 Struts 配置對象


1.<bean:page> 標(biāo)簽

<bean:page>
標(biāo)簽用來建立一個 page 范圍的變量,并可通過這個變量來訪問 JSP 的內(nèi)嵌對象。這個標(biāo)簽有兩個屬性:

1 id :變量名。

2 property JSP 內(nèi)嵌對象名,必須是 application config, 、 request 、 response session 其中之一。

2.<bean:struts> 標(biāo)簽

<bean:struts> 標(biāo)簽用來建立一個 page 范圍的變量,并可通過這個變量來訪問 Struts 的三個配置對象。這個標(biāo)簽有四個屬性:

1 id :變量名。

2 formBean struts-config.xml 文件中的 <form-bean> 標(biāo)簽的 name 屬性值。如果指定這個屬性, <bean:struts> 會創(chuàng)建 org.apache.struts.action.ActionFormBean 類型的對象實例。

3 mapping struts-config.xml 文件中的 <action> 標(biāo)簽的 path 屬性值。如果指定這個屬性, <bean:struts> 會創(chuàng)建 org.apache.struts.action.ActionMapping 類型的對象實例。

4 forward struts-config.xml 文件中的 <global-forwards> 標(biāo)簽的子標(biāo)簽 <forward> name 屬性值。如果指定這個屬性, <bean:struts> 會創(chuàng)建 org.apache.struts.action.ActionForward 類型的對象實例。

在使用 <bean:struts> 標(biāo)簽時應(yīng)注意,在滿足下面三種情況中的一種, <bean:struts> 就會拋出異常:

1 )同時使用了 formBean 、 mapping forward 中的兩個或三個。

2 )未指定 formBean mapping forward

3 formBean mapping forward 所指的標(biāo)簽不存在。

下面的例子演示了 <bean:page> <bean:struts> 標(biāo)簽的使用方法,在 <samples 工程目錄 > 目錄中建立一個 accessEmbeddedObject.jsp 文件,代碼如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <% @pagepageEncoding = " GBK " %>
<% @tagliburi = " http://struts.apache.org/tags-bean " prefix = " bean " %>
< html >
< head >
< title > 訪問JSP內(nèi)嵌對象和Struts配置對象 </ title >
</ head >
< body >
< bean:page id ="myRequest" property ="request" />
myRequest.characterEncoding=${myRequest.characterEncoding}
< br >
myRequest.contextPath=${myRequest.contextPath}
<%
out.println(myRequest.getParameter(
" abc " ));
%>
< bean:struts id ="myHtmlTagsForm" formBean ="htmlTagsForm" />< br >
myHtmlTagsForm.type=${myHtmlTagsForm.type}
< br >
myHtmlTagsForm.getClass()=${myHtmlTagsForm.class}
< bean:struts id ="myHtmlTags" mapping ="/htmlTags" />< br >
myHtmlTags.type=${myHtmlTags.type}
< br >
myHtmlTags.getClass()=${myHtmlTags.class}
< bean:struts id ="myNewProduct" forward ="newProduct" />< br >
myNewProduct.path=${myNewProduct.path}
< br >
myNewProduct.getClass()=${myNewProduct.class}
</ body >
</ html >
<!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->

四、訪問 Web 資源和屬性文件

1.<bean:include> 標(biāo)簽

<bean:include> 標(biāo)簽用于獲得相對或絕對路徑的 Web 資源,并將這些資源的內(nèi)容保存到 page 范圍的變量中。 <bean:include> 標(biāo)簽有四個常用的屬性:

1 id :變量名。

2 href Web 資源的絕對路徑。

3 page Web 資源的相對路徑。以“ / ”開頭。

4 forward struts-config.xml 文件 <global-forwards> 元素的子元素 <forward> name 屬性值。如果指定這個屬性, <bean:include> 標(biāo)簽會自動獲得 <forward> path 屬性所指的 Web 資源的內(nèi)容。

2.<bean:resource> 標(biāo)簽

<bean:resource> 標(biāo)簽和 <bean:include> 標(biāo)簽類似,也用來獲得 Web 資源的內(nèi)容,但和 <bean:include> 的不同之處是 <bean:resource> 在訪問 Web 資源時(如 JSP 頁面),并不執(zhí)行這個 JSP 頁面,而是將整個 JSP 頁面的原始內(nèi)容保存到變量中,而 <bean:include> 在訪問這個 JSP 頁面時,會先執(zhí)行這個 JSP 頁面,然后將 JSP 頁面執(zhí)行后的結(jié)果保存在變量中。因此,使用 <bean:include> 訪問 Web 資源和在 IE 中輸入相應(yīng)的 URL 的效果是一樣的。而 <bean:resource> 獲得的是 JSP 頁面的源代碼。

<bean:resource> 標(biāo)簽有三個屬性:

1 id :變量名。

2 name Web 資源的相對路徑。以“ / ”開頭。

3 input :如果指定 input 屬性, id 變量為 java.io.InputStream 類型,如果未指定 input 屬性, id 變量為 String 類型。

3.<bean:message> 標(biāo)簽

<bean:message> 標(biāo)簽用于從 Java 屬性文件中獲得字符串信息。要注意的是, <bean:message> 標(biāo)簽獲得字符串信息后,并不將所獲得的信息保存在變量中,而是將其直接輸出,也就是在執(zhí)行 JSP 頁面時,在生成客戶端內(nèi)容時, <bean:message> 標(biāo)簽會被屬性文件中的字符串信息代替。 <bean:message> 標(biāo)簽的常用屬性如下:

1 key :屬性文件中的字符串信息鍵名。

2 bundle struts-config.xml 文件中的 <message-resources> 標(biāo)簽的 key 值屬值。如果不指定 bundle 屬性,就使用默認(rèn)的屬性文件。

3 name :用于獲得鍵名的字符串變量名或?qū)ο髮嵗兞棵? <bean:message> 標(biāo)簽除了從 key 屬性中獲得鍵名,還可以通過將 key 保存在指定范圍的變量中,然后通過 name 屬性獲得這個 key 。

4 property :獲得 key 的屬性名。如果 name 屬性為對象實例變量名,則 <bean:message> 標(biāo)簽會從 property 所指的屬性中獲得 key 。

5 scope <bean:message> 標(biāo)簽獲得 name 變量的范圍。默認(rèn)值是 page

6 arg0 ~ arg4 :用于向帶參數(shù)的字符串信息中傳入?yún)?shù)值。分別對應(yīng)于屬性文件中的 {0} ~ {4} 。

下面的例子演示了本節(jié)所涉及到的三個標(biāo)簽的使用方法。在運(yùn)行這個例子之前,先在<samples工程目錄>"src"struts目錄中建立一個MyResources.properties文件,并輸入如下的內(nèi)容:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> greet = helloworld
myGreet
= hello{ 0 }

<!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->
然后在struts-config.xml中的<struts-config>元素中添加如下的子標(biāo)簽:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> < message-resources parameter ="struts.MyResources" key ="my" />

<!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->

最后在 <samples 工程目錄 > 中建立一個 accessResources.jsp 文件,代碼如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <% @pagepageEncoding = " GBK " %>
<% @pageimport = " actionform.HtmlTagsForm " %>
<% @tagliburi = " http://struts.apache.org/tags-bean " prefix = " bean " %>
< html >
< head >
< title > 訪問Web資源和屬性文件 </ title >
</ head >
< body >
< bean:include id ="myWebVar1"
href
="http://localhost:8080/samples/simpleValidation.jsp" />
< bean:include id ="myWebVar2" page ="/htmlTags.jsp" />
< bean:include id ="myWebVar3" forward ="newProduct" />
${myWebVar1}${myWebVar2}${myWebVar3}

< bean:resource id ="myResVar" name ="/htmlTags.jsp" />
${myResVar}
<% -- 從MyResources.properties中獲得信息 -- %>
< bean:message bundle ="my" key ="greet" />
<% -- 從ErrorDescription.properties中獲得信息 -- %>
< bean:message key ="error.email.invalid" />
< bean:message bundle ="my" key ="myGreet" arg0 ="李寧" />

<%
request.setAttribute(
" newGreet " , " greet " );
%>
< bean:message bundle ="my" name ="newGreet" />
<%
HtmlTagsFormform
= new HtmlTagsForm();
form.setName(
" myGreet " );
request.setAttribute(
" form " ,form);
%>
<% -- 從form對象的name屬性獲得key -- %>
< bean:message bundle ="my" name ="form" property ="name" arg0 ="李寧" />
</ body >
</ html >

在IE中輸入如下的URL來測試accessResources.jsp:

http://localhost:8080/samples/accessResources.jsp


五、使用 <bean:write> 標(biāo)簽輸出信息

<bean:write> 用于輸出字符串變量及對象變量的屬性值。 <bean:write> 有如下六個常用的屬性:

1.name :變量名(包括字符串變量或?qū)ο笞兞浚?

2.property :如果 name 是對象變量, property 表示 name 對象的屬性。

3.filter :是否過濾輸出內(nèi)容中的 HTML 元素。如果 filter true ,輸出內(nèi)容中的所有的 HTML 元素的敏感符號都會被替換成相應(yīng)的字符串(如“ < ”被替換成了“ &lt; ”,“ > ”被替換成了“ &gt; ”)。

4.format :用于格式化輸出內(nèi)容的格式化字符串。

5.formatKey :保存在屬性文件中的格式化字符串的 key 。

6.scope name 變量保存的范圍。默認(rèn)是 page 范圍。

下面的例子演示了 <bean:write> 的常用方法。在運(yùn)行這個例子之前,在 <samples 工程目錄 >"src"struts"MyResources.properties 文件中加入如下的內(nèi)容:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> formatDate = yyyy-MM-ddhh:mm:ss

<!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->

<samples 工程目錄 > 目錄中建立一個 beanWrite.jsp 文件,代碼如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <% @pagepageEncoding = " GBK " %>
<% @pageimport = " actionform.HtmlTagsForm,java.util.* " %>
<% @tagliburi = " http://struts.apache.org/tags-bean " prefix = " bean " %>
< html >
< head >
< title > 測試bean:write </ tit
分享到:
評論

Struts1.x系列教程(6):Bean標(biāo)簽庫


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: a黄视频| 8mav福利视频在线播放 | 99热首页 | 99在线视频观看 | 一级毛片免费在线播放 | 欧美色综合网 | 亚洲欧美18v中文字幕高清 | 欧美日本一区 | 99久久精品国产一区二区成人 | 国产精彩视频在线 | 久久久久久久久日本理论电影 | 在线播放一区二区三区 | 那一个欧美一级毛片 | 国产高清视频 | 欧美成年性h版影视中文字幕 | 91免费精品国偷自产在线在线 | 国内精品久久毛片一区二区 | 国内精品伊人久久久影视 | 国产一起色一起爱 | 色综合久久手机在线 | 在线观看国产 | 国产免费av在线 | www.亚洲在线 | 久久成人18免费网站 | 91免费播放 | 欧美成人精品一区二区三区 | 欧美性成人 | 国产一区二区三区福利 | av激情在线| 草草视频在线观看 | 亚洲久久视频 | 色婷婷一区二区三区四区 | 国产精品综合色区在线观看 | 亚洲成人激情在线 | 欧洲亚洲精品久久久久 | 久久久久久国产精品视频 | 国产熟妇无码A片AAA毛片视频 | 26uuu天天夜夜综合 | 国产一区二区三区免费 | 久久se精品一区二区国产 | 日韩在线成人 |