隨筆 - 71  文章 - 15  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          因?yàn)榭诳剩系蹌?chuàng)造了水;
          因?yàn)楹诎担系蹌?chuàng)造了火;
          因?yàn)槲倚枰笥眩陨系圩屇銇淼轿疑磉?br> Click for Shaanxi xi'an, Shaanxi Forecast
          ╱◥█◣
            |田|田|
          ╬╬╬╬╬╬╬╬╬╬╬
          If only I have such a house!
          〖總在爬山 所以艱辛〗
          Email:myesjoy@yahoo.com.cn
          NickName:yesjoy
          MSN:myesjoy@hotmail.com
          QQ:150230516

          〖總在尋夢 所以苦痛〗

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          Hibernate在線

          Java友情

          Java認(rèn)證

          linux經(jīng)典

          OA系統(tǒng)

          Spring在線

          Structs在線

          專家專欄

          企業(yè)信息化

          大型設(shè)備共享系統(tǒng)

          工作流

          工作流產(chǎn)品

          網(wǎng)上購書

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          Struts 提供了一個強(qiáng)大的 HTML 標(biāo)簽庫來幫助你構(gòu)建 Web 應(yīng)用程序。

          為了更容易、更快速地進(jìn)行開發(fā), Struts 提供了功能同其它 JSP 標(biāo)簽庫類似的五個標(biāo)簽庫,即: HTML Bean Logic Template Nested 。第一部分講述如何配置一個 Struts 應(yīng)用程序來運(yùn)用這個標(biāo)簽庫,并介紹了第一組標(biāo)簽;第二部分講述了第二組標(biāo)簽; ?

          HTML 標(biāo)簽庫主要用來顯示 HTML 元素,如果不用這種方法,你就必須用 HTML 標(biāo)簽來指定它們。從表面上看,這個標(biāo)簽庫很簡單。但是通過深入研究,我們就會發(fā)現(xiàn)它很強(qiáng)大。例如,它可以為我們在 HTML 表單的一個特定輸入元素中放置重點(diǎn)內(nèi)容生成 JavaScript ,或?yàn)榭蛻舳溯斎腧?yàn)證生成腳本。而且,你可以用它通過一行代碼來處理錯誤。然而,在將這個標(biāo)簽庫用于你的 Struts 應(yīng)用程序前,你需要做些簡單的準(zhǔn)備工作。

          配置應(yīng)用程序來運(yùn)用標(biāo)簽庫
          在運(yùn)用 Struts HTML 標(biāo)簽庫前,你需要通過三個步驟來配置一個 Struts 應(yīng)用程序。

          1.????? 在部署描述符( web.xml 文件)中注冊標(biāo)簽庫:

          ? <taglib>

          ??? <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>

          ??? <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
          </taglib>

          上面的代碼就告訴了 servlet container 有關(guān) Struts HTML 標(biāo)簽庫的情況,以及在哪里可以找到標(biāo)簽庫的 TLD 文件。

          2. 確信將 struts-html.tld 文件復(fù)制到 WEB-INF 目錄中。你不用擔(dān)心標(biāo)簽庫類文件,因?yàn)樗鼈円呀?jīng)包含在 struts.jar 文件中了。

          3. 在運(yùn)用標(biāo)簽庫的每個 JSP 頁面中,插入下面的 <taglib> 指示符:
          <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
          另外,你也可以運(yùn)用 struts-html.tld 文件來學(xué)習(xí)它所支持的標(biāo)簽以及每個標(biāo)簽可以帶有哪些屬性。

          運(yùn)用一個自定義的標(biāo)簽庫通常是很容易的:只要遵循前面講述的步驟就行了。然而,有些標(biāo)簽庫包含一些原則,這些原則使我們在運(yùn)用這些標(biāo)簽庫時并不那么容易。 Struts HTML 標(biāo)簽庫就是其中之一。有些標(biāo)簽很簡單、很容易使用;然而,另外有些標(biāo)簽則取決于 Struts 應(yīng)用程序中的其它標(biāo)簽或其它元素。

          我將 HTML 標(biāo)簽庫中的標(biāo)簽大致分成了兩類:簡單、容易使用的標(biāo)簽,我把它們稱為 獨(dú)立的標(biāo)簽 ,第二類是必須通過一個 form 標(biāo)簽來使用的標(biāo)簽。我把第二類的標(biāo)簽簡單地稱為與 form 相關(guān)的標(biāo)簽。本文主要講述獨(dú)立的標(biāo)簽,在本系列文章的 第二部分 我將講述與 form 相關(guān)的標(biāo)簽。

          HTML 標(biāo)簽庫包含幾個很容易使用的獨(dú)立的標(biāo)簽。下面講述幾個比較重要的標(biāo)簽。

          <html> 標(biāo)簽
          <html>
          標(biāo)簽是 HTML 標(biāo)簽庫中最容易的標(biāo)簽。它有兩個屬性: locale xhtml ,兩者都不是必需的。下面的代碼選自一個運(yùn)用 <html> 標(biāo)簽的 JSP 頁面:
          <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

          <html:html locale="true">

          <head>

          <title>Welcome</title>

          </head>

          <body>

          Hello World!

          </body>

          </html:html>

          注意,我們沒有用標(biāo)準(zhǔn)的 <html> 元素,而是用了 <html:html> 標(biāo)簽。其中第一個 html 指的是前綴,第二個是 <html> 標(biāo)簽本身。而且我們也用了 locale 屬性。 JSP 頁面將顯示成:
          <html lang="en">

          <head>

          <title>Welcome</title>

          </head>

          <body>

          Hello World!

          </body>

          </html>

          注意, <html:html locale=“true”> 中的 locale 屬性在生成的 HTML 頁面中被轉(zhuǎn)換成了 lang=“en” 。生成的結(jié)果取決于 Struts 應(yīng)用程序所位于的服務(wù)器的 locale 。如果你將應(yīng)用程序部署到一個不同 locale 的服務(wù)器,你不需要改變代碼。 Locale 會自動調(diào)整。

          <base> 標(biāo)簽
          <base>
          標(biāo)簽顯示一個 HTML 元素,用一個 href 屬性表示所包含的 JSP 頁面的絕對位置。只有當(dāng)這個標(biāo)簽是內(nèi)嵌在一個 head 標(biāo)簽部分時,它才有效。例如這個 JSP 頁面:
          <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

          <html:html locale="true">

          <head>

          <title>Welcome</title>

          <html:base/>

          </head>

          <body>

          Hello World!

          </body>
          </html:html>

          會轉(zhuǎn)換成以下形式:
          <html lang="en">

          <head>

          <title>Welcome</title>

          <base >

          </head>

          <body>

          Hello World!

          </body>
          </html>

          <img> 標(biāo)簽
          <img>
          標(biāo)簽用來生成一個 HTML <IMG> 標(biāo)簽。它最重要的屬性有:
          ·page
          :圖象文件相對于模塊的路徑;前面必須帶有一個斜線
          ·height
          :圖象的高度
          ·width
          :圖象的寬度
          ·alt
          :如果找不到圖象,顯示的文本

          ?

          ?

          ?

          例如:
          <html:img page="/logo.gif" height="50" width="200" alt="Company Logo"/>

          會轉(zhuǎn)換成:
          <img src="/myStrutsApp/logo.gif" height="50" width="200" alt="Company Logo">

          <link> 標(biāo)簽
          <link>
          標(biāo)簽會生成一個超鏈接。例如標(biāo)簽:
          <html:link page="/index.html">Click here</html:link>
          會轉(zhuǎn)換成:
          <a href="/myStrutsApp6/index.html">Click here</a>

          <errors> 標(biāo)簽
          <errors>
          標(biāo)簽的易于使用性通常會掩蓋其真正的強(qiáng)大功能。通過一個簡單的 <html:errors/> 標(biāo)簽,你就可以在一個 JSP 頁面上顯示完全自定義的錯誤信息。

          這個標(biāo)簽檢查 Request 對象的屬性集合來查找一個 reserved key 。如果它找到一個 reserved key ,它就假設(shè)這個 key 是一個 String 、或是一個 String 數(shù)組(它包含在模塊的 MessageResources 中查找的 message keys )、或是類型為 org.apache.struts.action.ActionErrors 的一個對象。

          如果在應(yīng)用程序資源中存在相應(yīng)的信息,那么就可以用下面這些可選的 message keys
          · errors.header
          :相應(yīng)的信息在錯誤信息的單獨(dú)列表前顯示
          · errors.footer
          :相應(yīng)的信息在錯誤信息的單獨(dú)列表后顯示
          · errors.prefix
          :相應(yīng)的信息在錯誤信息的單獨(dú)列表前顯示
          · errors.suffix
          :相應(yīng)的信息在錯誤信息的單獨(dú)列表后顯示

          ?

          ?

          ?

          ?Struts HTML 標(biāo)簽庫會使開發(fā)更容易、更快速。為了有效地運(yùn)用這個標(biāo)簽庫,你需要對標(biāo)簽庫中的標(biāo)簽很熟悉。在本系列文章的第一部分中,你學(xué)習(xí)了如何配置一個 Struts 應(yīng)用程序來運(yùn)用標(biāo)簽庫,并對獨(dú)立的標(biāo)簽有了總體的了解。
          在下面第二部分中,你將學(xué)習(xí)與 form 相關(guān)的標(biāo)簽,講述了如何使用 Struts 提供的 form 相關(guān)的標(biāo)簽。
          form 相關(guān)的標(biāo)簽包括 <form> 標(biāo)簽本身以及所有必須包含在其中的標(biāo)簽。比如, <text> <password> 標(biāo)簽就是和 form 相關(guān)的標(biāo)簽,因?yàn)槿绻话阉鼈兎诺揭粋€ form 中它們就沒有意義。

          <form> 標(biāo)簽
          <form>
          標(biāo)簽用于生成一個 HTML form 。使用該標(biāo)簽時必須遵循許多規(guī)則。
          首先要遵循的規(guī)則是 <form> 標(biāo)簽中必須包含一個 action 屬性,它是這個標(biāo)簽中唯一必需的屬性。如果不具備該屬性則 JSP 頁面會拋出一個異常。之后你必須給這個 action 屬性指定一個有效值。一個有效值是指應(yīng)用程序的 Struts 配置文件中 <action-mappings> 元素里的任何一個 <action> 子元素的訪問路徑。而且相應(yīng)的 <action> 元素中必須有一個 name 屬性,它的值是 form bean 的名稱。

          例如,如果你有這樣一個 <form> 標(biāo)簽: ?? <html:form action="/login" >

          那么你的 Struts 配置文件的 <action-mappings> 元素中必須有一個如下顯示為粗體的 <action> 元素:
          <action-mappings>
          ???? <action path="/login"
          ????? type="com.javapro.struts.LoginAction"?
          ????? name="loginForm"
          ????? scope="request"
          ????? input="/login.jsp">
          ????? <forward name="success" path="/mainMenu.jsp"/>
          ??? </action>
          ??? .
          ??? .
          ??? .
          ? </action-mappings>

          ? 這就是說一個 form 標(biāo)簽是和 form bean 相關(guān)聯(lián)的。

          另一個要遵循的規(guī)則是: 任何包含在 <form> 中用來接收用戶輸入的標(biāo)簽( <text> <password> <hidden> <textarea> <radio> <checkbox> <select> )必須在相關(guān)的 form bean 中有一個指定的屬性值。比如,如果你有一個屬性值被指定為 “username” <text> 標(biāo)簽,那么相關(guān)的 form bean 中也必須有一個名為 “username” 的屬性。輸入 <text> 標(biāo)簽中的值會被用于生成 form bean userName 屬性。

          除了上面所講的屬性之外, <form> 標(biāo)簽還有一些不是必須但加上更好的 次要 的屬性 。比如,你可以用 focus 屬性來生成 JavaScript ,它會 定焦 focus )到該 form 所包含的一個元素上。使用 focus 屬性時你需要給它指定元素的名稱。比如,以下代碼是定焦在第二個 Text 元素上的:

          <body>
          <html:form action="/login" focus="password">
          User Name: <html:text property="userName"/>
          <br>Password: <html:text property="password"/>
          <br><html:submit/>
          </html:form>
          </body>

          該段代碼會被轉(zhuǎn)換成:
          <body>
          <form name="loginForm" method="post" action="/myStrutsApp6/login.do">
          User Name: <input type="text" name="userName"? value="">
          <br>Password: <input type="text" name="password" value="">
          <br><input type="submit" value="Submit">
          </form>
          <script language="JavaScript"
          ?? type="text/javascript">
          ? <!--
          ?if (document.forms["loginForm"].elements["password"].type != "hidden")
          ??? document.forms["loginForm"].elements["password"].focus()
          ? // -->
          </script>

          </body>
          注意, <form> 標(biāo)簽中 method 屬性的缺省值是 POST 。另外,有沒有看到這個標(biāo)簽庫是如何建立 JavaScript 來定焦到 password 元素上的 ? 這也是該庫讓人著迷的地方之一。你不用擔(dān)心如何在客戶端進(jìn)行編程,它會幫你自動生成。

          在運(yùn)行前面的例子時還要注意,你必須有一個包含 userName password 屬性的相關(guān) form 。你可以參考本文第三部分中的 Login 程序。

          <text> 標(biāo)簽
          <text>
          標(biāo)簽用于生成一個文本的輸入?yún)^(qū)域。它必須包含和相關(guān) form bean 中的相同屬性對應(yīng)的 “property” 屬性。該標(biāo)簽只有在嵌入到一個 <form> 標(biāo)簽中時才有效。
          例如: <html:text property="userName"/>
          會被轉(zhuǎn)換成: <input type="text" name="userName" value="">

          <password> 標(biāo)簽
          <password>
          標(biāo)簽用于生成一個口令字( type password )的輸入?yún)^(qū)域。它必須包含和相關(guān) form bean 中的相同屬性對應(yīng)的 “property” 屬性。該標(biāo)簽只有在嵌入到一個 <form> 標(biāo)簽中時才有效。該標(biāo)簽中的一個很重要的屬性是 “redisplay” ,它用于重新顯示以前輸入到這個區(qū)域中的值。該屬性的缺省值為 true 。然而,為了使 password 不能被重新顯示,你或許希望將該屬性的值設(shè)為 false
          例如: <html:password property="password" redisplay="false"/>
          會被轉(zhuǎn)換成 : <input type="password" name="password" value="">

          <hidden> 標(biāo)簽
          <hidden>
          標(biāo)簽用于生成一個隱藏文本的輸入?yún)^(qū)域。它必須包含和相關(guān) form bean 中的相同屬性對應(yīng)的 “property” 屬性。該標(biāo)簽只有在嵌入到一個 <form> 標(biāo)簽中時才有效:
          例如: <html:hidden property="userName"/>
          會被轉(zhuǎn)換成 : <input type="hidden" name="userName" value="">

          <textarea> 標(biāo)簽
          <textarea>
          標(biāo)簽用于生成一個文本區(qū)元素( text area element )。它必須包含和相關(guān) form bean 中的相同屬性對應(yīng)的 “property” 屬性。

          比如:
          <html:textarea property="details" cols="80" rows="20" value="Enter details here"/>
          會被轉(zhuǎn)換成:
          <textarea name="details" cols="80" rows="20">Enter details here</textarea>

          <radio> 標(biāo)簽
          <radio>
          標(biāo)簽用于顯示一個單選按鈕( radio button )。它必須包含 “value” 屬性。比如這段代碼:
          <html:radio property="title" value="1"/>Mr.
          <html:radio property="title" value="2"/>Ms.
          <html:radio property="title" value="3"/>Dr.

          會被轉(zhuǎn)換成這樣的 HTML
          <input type="radio" name="title" value="1">Mr.
          <input type="radio" name="title" value="2">Ms.
          <input type="radio" name="title" value="3">Dr.

          <checkbox> 標(biāo)簽
          <checkbox>
          標(biāo)簽用于顯示 checkbox 類型的輸入?yún)^(qū)域。比如:
          <html:checkbox property="notify"/>Please send me notification
          會被轉(zhuǎn)換成:
          <input type="checkbox" name="notify" value="on">Please send me notification

          <submit> 標(biāo)簽
          <submit>
          標(biāo)簽用于生成提交類型( type submit )的輸入?yún)^(qū)域。
          比如: <html:submit value="Login"/>
          會被轉(zhuǎn)換成: <input type="submit" value="Login">
          ?
          <reset>
          標(biāo)簽
          <reset>
          標(biāo)簽用于生成重置類型( type reset )的輸入?yún)^(qū)域。比如:
          <html:reset/>
          會被轉(zhuǎn)換成: <input type="reset" value="Reset">

          <option> 標(biāo)簽
          <option>
          標(biāo)簽用于顯示 select box 中的一個選項(xiàng)。參照下面的 <select> 標(biāo)簽。

          <select> 標(biāo)簽
          <select>
          標(biāo)簽用于顯示一個包含零個或更多選項(xiàng)的 HTML 選擇元素。它必須被嵌入一個 <form> 標(biāo)簽中才有效。下面這個例子將說明如何使用該標(biāo)簽:
          <html:select property="color" size="3">
          ? <html:option value="r">red</html:option>
          ? <html:option value="g">green</html:option>
          ? <html:option value="b">blue</html:option>
          </html:select>

          會被轉(zhuǎn)換成:
          <select name="color" size="3"><option value="r">red</option>
          ? <option value="g">green</option>
          ? <option value="b">blue</option>
          </select>

          在本文系列的第二部分,你學(xué)到了一些更重要的和 form 相關(guān)的標(biāo)簽。在使用這些標(biāo)簽之前,你必須依照一些規(guī)則以便正確地運(yùn)用它們。第三部分將講述如何在真正的程序中使用這些標(biāo)簽。

          ?

          在本文系列的第一部分中,你已經(jīng)學(xué)習(xí)了如何配置 Struts 提供的 HTML 標(biāo)簽庫以及獨(dú)立使用的標(biāo)簽;在第二部分中你學(xué)習(xí)了和 form 相關(guān)的標(biāo)簽;在第三部分中,你將學(xué)習(xí)如何在 Login 程序中使用 HTML 標(biāo)簽庫。你可以點(diǎn)此下載該程序。如果你閱讀過關(guān)于 Struts 的系列文章(包含六個部分),你會發(fā)現(xiàn)這個 Longin 程序是上次我們討論過的 Login 程序的增強(qiáng)版。
            

           


            

          1. 應(yīng)用程序目錄結(jié)構(gòu)


            這個 Login 程序是一個簡單的 Struts 程序,它將顯示如何使用 HTML 標(biāo)簽庫,尤其是和 form 相關(guān)的標(biāo)簽和用于錯誤處理的標(biāo)簽。其目錄結(jié)構(gòu)如圖 1 中所示。
            
            本文將介紹程序中每個類之間的關(guān)系以及它們所起的作用。注意,你必須自己將所有的庫文件復(fù)制到 WEB-INF/lib 目錄下;為了節(jié)省下載時間它們沒有被包含在 ZIP 文件中。
            
            視圖
             MVC 范例中有三種作為視圖的 JSP 頁面: login.jsp mainMenu.jsp viewSecret.jsp login.jsp 文件中包含一個用于用戶登錄的 form mainMenu.jsp 中顯示了兩個鏈接(注銷( log out )和查看公司機(jī)密),而 viewSecret.jsp 則用來顯示一條機(jī)密消息。
            
            這個程序的首頁面是一個 Login 頁面,它是一個包含兩個輸入框( userName password )的 form (見圖 2 )。用戶被要求在這兩個輸入框中輸入正確的值。登錄成功之后程序會顯示 mainMenu.jsp 頁面,它包含兩個鏈接:一個是注銷,另一個是查看公司機(jī)密賬號(見圖 3 )。
            
            如果點(diǎn)擊了 注銷 鏈接,程序便會退出并重新顯示 Login 頁面。如果點(diǎn)擊了 查看機(jī)密 鏈接,則會顯示 viewSecret.jsp 頁面。如果注冊失敗,那么用戶會被重新引導(dǎo)到 Login 頁面以重新登錄。
            
            如果點(diǎn)擊了 注銷 鏈接,程序便會退出并重新顯示 Login 頁面。如果點(diǎn)擊了 查看機(jī)密 鏈接,則會顯示 viewSecret.jsp 頁面。如果注冊失敗,那么用戶會被重新引導(dǎo)到 Login 頁面以重新登錄。
            

           


            

          2. Login 頁面


            如果用戶輸入正確的用戶名和密碼,程序會建立一個 session 對象,并會有一個名為 loggedIn 的屬性被添加到這個 session 對象中去。只有當(dāng)程序能夠在用戶的 session 對象中查找到這個 loggedIn 屬性時,用戶才可以瀏覽 Main Menu 頁面和 Secret 頁面。所有缺少該屬性或無效的 session 對象都會迫使用戶登錄。在這個程序中,正確的用戶名是 “john” ,密碼是 123” 。這些值是程序中固定寫死的以避免需要連接到數(shù)據(jù)庫里或使用其他存儲來完成用戶驗(yàn)證。
            
            當(dāng)用戶注銷時,他或她的 session 對象將失效,同時 Longin 頁面會重新顯示。當(dāng)用戶點(diǎn)擊鏈接要查看公司機(jī)密時,會彈出 viewSecret.jsp 頁面(見圖 4 )。
            

           


            

          3. 主頁面


            配置文件
             Login 程序有兩個位于 WEB-INF 目錄下的配置文件:作為部署描述符的 web.xml 文件(見列表 1 );以及作為 Struts 配置文件的 truts-config.xml 文件 (見列表 2 )。在列表 1 中,你需要特別注意 action servlet 配置中的 <init-param> 元素:
          <init-param>
             <param-name>application</param-name>
             <param-value>com.javapro.struts.ApplicationResources
             </param-value>
          </init-param>

            一個 <init-param> 元素代表一個初始化參數(shù),它會被包含在傳送到 action servlet 中的 ServletConfig 對象里。帶有名為 “application” 的初始化參數(shù)對 action servlet 來說具有特殊的意義:它定義了一個會被加載到缺省消息資源( message resource )中的屬性文件。(我將在 消息資源 部分介紹這個屬性文件)。在這個程序中,該屬性文件被用于存貯整個程序中的錯誤消息。
            
            部署描述符中需要注意的第二個地方是的 <taglib> 元素,它包含 <taglib-uri> <taglib-location> 元素。基本上, <taglib> 元素是用來告訴 servlet 容器如何使用一個標(biāo)簽庫的,該標(biāo)簽庫的 TLD 文件可以在 <taglib-location> 元素指定的位置找到。
            


            

          4. 機(jī)密頁面


            注意在列表 2 中, <form-beans> 部分包含一個名為 loginForm form bean 。我在關(guān)于 Struts 系列文章的第五部分中曾介紹過 form bean
            
             WEB-INF 目錄中的最后一個文件是 struts-html.tld 文件,它是 HTML 標(biāo)簽庫中的 TLD 文件。為了節(jié)省時間我將跳過對它的介紹,但你可以在 ZIP 文件中的 WEB-INF 目錄下找到它。
            
             Form
            該 form com.javapro.struts.LoginForm 類的形式顯示(見列表 3 )。注意粗體的部分:它通過傳入 “error.missing.userName” “error.missing.password” 字符串來舉例說明 ActionError 對象,這些字符串在消息資源中起關(guān)鍵字( key )的作用。
            
             Action
             Action 類分兩種: LoginAction (見列表 4 )和 LogoutAction (見列表 5 )。另外值得一提的是如何通過消息資源中的一個關(guān)鍵字來構(gòu)建這個 ActionError 消息(在列表 4 中顯示為粗體)。
            
             HTML 標(biāo)簽庫的使用
            列表 6 、列表 7 和列表 8 中分別包含了 JSP 文件。 login.jsp 頁面(見列表 6 )中顯示了如何在 HTML 庫中使用這些標(biāo)簽(粗體部分)。我在本文系列的第一部分中介紹過這些標(biāo)簽,但通過看它如何在真正的程序中運(yùn)行,你會對它們有更深入的了解。
            
            消息資源
            如我在 配置文件 部分簡要介紹的那樣,在 WEB-INF/classes/com/javapro/struts 目錄下的 ApplicationResources.properties 文件中包含配對的 key/values ,它們會被加載到缺省的消息資源中去。 HTML 標(biāo)簽庫中的 <errors> 標(biāo)簽會在該消息資源中查找到自定義的錯誤消息。想知道它是如何出錯的,你可以試著用一個錯誤的用戶名或密碼來登錄,看看顯示的錯誤消息是什么。更改錯誤消息和編輯屬性文件一樣容易。看看如下的屬性文件: errors.header=<b>Error(s)!!!</b><ul>
          errors.footer=</ul><hr>

          error.missing.userName=<li>A user name was not found.</li>
          error.missing.password=<li>A password was not found.</li>
          error.login.failed=<li>Incorrect user name and/or password.</li>

            如果你檢查了程序的 web.xml 文件,你會看到這些對象是如何被加載的。消息資源通過將程序的參數(shù)傳入 ActionServlet 來完成加載過程。在 ActionServlet 進(jìn)行初始化時,它會將 package 文件夾中的 ApplicationResources.properties 屬性解析為缺省的消息資源。如果在資源中更改一個消息并重新加載程序,它就會在整個程序中顯示。在你的 Login 程序中,這個屬性文件包含一些程序的類中所使用的錯誤消息。
            
            本文介紹了如何在一個簡單的 Login 程序中使用 HTML 標(biāo)簽庫。它對程序進(jìn)行了詳細(xì)描述,包括視圖、配置文件、 form bean action 類以及用于 JSP 頁面的代碼。

          posted on 2006-04-19 16:52 ★yesjoy★ 閱讀(3087) 評論(1)  編輯  收藏 所屬分類: Structs學(xué)習(xí)

          FeedBack:
          # re: Struts提供的強(qiáng)大的HTML標(biāo)簽庫總結(jié)[未登錄] 2015-08-20 13:45 哈哈
          是  回復(fù)  更多評論
            
          主站蜘蛛池模板: 高尔夫| 揭阳市| 大新县| 新宾| 花莲市| 娱乐| 宝兴县| 灯塔市| 绵阳市| 临夏市| 甘南县| 榆社县| 项城市| 兴山县| 富宁县| 广州市| 什邡市| 白玉县| 宣威市| 巴塘县| 射洪县| 漳浦县| 涟水县| 沙田区| 鄂温| 石首市| 辉南县| 都兰县| 大埔县| 象山县| 南投市| 胶州市| 凤翔县| 进贤县| 屏边| 沧州市| 榆树市| 金堂县| 措美县| 安泽县| 黄山市|