使用 Translator 模式構(gòu)建更好的網(wǎng)站(3)_Windows教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
在此 JSP 文件中,要注意的第一點(diǎn)是它有一個(gè) page 指令標(biāo)記。這是因?yàn)樗枰^承一個(gè)超類,并需要導(dǎo)入兩個(gè)類。JSP 文件繼承了超類 com.ibm.igs.ispkcm.translator.JspBase,因?yàn)?JspBase 包括一些很好的實(shí)用函數(shù),它使得 JSP 文件可包含更少的代碼。該 JSP 文件所用的主要實(shí)用函數(shù)是 displayErrors() 和 highLightErrors()。該 page 指令導(dǎo)入 LoanTranslator 和 Hashtable,因?yàn)?JSP 文件中引用了這兩個(gè)類,導(dǎo)入這兩個(gè)類是為了以后在此 JSP 代碼中引用這兩個(gè)類時(shí)不必使用它們完全限定的類名。以下代碼顯示了 import 語句的一個(gè)示例:
JSP 文件中第一行真正的 Java 代碼獲取 Translator 對象的一個(gè)實(shí)例,然后獲取一個(gè) Hashtable,其中存儲著屬于 Translator 對象的那個(gè)實(shí)例的錯(cuò)誤。因?yàn)?JSP 文件(在編譯后)是一個(gè) servlet,所以它是一個(gè)無狀態(tài)的服務(wù)對象。Translator 對象將在特定 JSP 文件或 servlet 的不同往返之間維護(hù)必要的狀態(tài)信息。狀態(tài)信息應(yīng)僅限于網(wǎng)站訪問者輸入的值和要向網(wǎng)站訪問者顯示的任何處理錯(cuò)誤。因?yàn)?Translator 對象的每個(gè)實(shí)例都與一個(gè)特定的網(wǎng)站訪問者相關(guān)聯(lián),所以 JSP 文件調(diào)用 Translator 對象的 getInstance(HttpServletRequest) 方法。由于為該方法傳遞的是一個(gè) HttpServletRequest 對象,所以該方法將能夠檢索與該網(wǎng)站訪問者的 HttpSession 相關(guān)的 Translator 實(shí)例。
在此 JSP 文件示例中,網(wǎng)站訪問者將在表單的頂部看到所有處理錯(cuò)誤。用來顯示這些錯(cuò)誤消息的 HTML 是使用 <%= displayErrors(htErrors) %> 表達(dá)式輸出的。displayErrors() 方法是從 JSP 文件的超類 JspBase 中繼承而來的。有了 displayErrors(),用于顯示錯(cuò)誤消息的所有邏輯都被集中在一起,從而簡化了維護(hù)工作。
下面這段代碼模板適用于表單上的每個(gè)輸入域:
highLightErrors() 是從 JSP 文件的超類 JspBase 中繼承而來的。如果某個(gè)輸入域有錯(cuò)誤,該方法將突出顯示該輸入域的標(biāo)簽。該方法接收兩個(gè)參數(shù):String 和Hashtable。該 Hashtable 是其中存儲著從 Translator 的實(shí)例檢索而來的錯(cuò)誤的 Translator。String 是正在檢查其是否有錯(cuò)誤的輸入域的名稱。如果存在與該域相關(guān)的錯(cuò)誤,highLightErrors() 就會返回突出顯示此輸入域的標(biāo)簽的 HTML。
在此代碼模板中,須注意的重要一點(diǎn)是:INPUT 標(biāo)記的 name 屬性是由一個(gè)表達(dá)式設(shè)置的,該表達(dá)式使用 LoanTranslator 對象的 BORROWER_LAST_NAME 常量。因?yàn)樵?JSP 文件中引用此域名時(shí)使用了一個(gè)常量,所以 Translator 對象和 servlet 的調(diào)試變得更加容易。使用常量更為容易,因?yàn)闊o論何時(shí)開發(fā)人員更改此域的名稱,他們都會獲得一個(gè)編譯錯(cuò)誤,而非運(yùn)行時(shí)錯(cuò)誤。查找編譯錯(cuò)誤要容易得多,因?yàn)榫幾g器會立即指出錯(cuò)誤,而運(yùn)行時(shí)錯(cuò)誤到調(diào)試和測試期間才能被發(fā)現(xiàn)。
| <%@ page extends="com.ibm.igs.ispkcm.translator.JspBase" import="com.ibm.developerworks.translatorpattern.LoanTranslator, Java.util.Hashtable"%> |
JSP 文件中第一行真正的 Java 代碼獲取 Translator 對象的一個(gè)實(shí)例,然后獲取一個(gè) Hashtable,其中存儲著屬于 Translator 對象的那個(gè)實(shí)例的錯(cuò)誤。因?yàn)?JSP 文件(在編譯后)是一個(gè) servlet,所以它是一個(gè)無狀態(tài)的服務(wù)對象。Translator 對象將在特定 JSP 文件或 servlet 的不同往返之間維護(hù)必要的狀態(tài)信息。狀態(tài)信息應(yīng)僅限于網(wǎng)站訪問者輸入的值和要向網(wǎng)站訪問者顯示的任何處理錯(cuò)誤。因?yàn)?Translator 對象的每個(gè)實(shí)例都與一個(gè)特定的網(wǎng)站訪問者相關(guān)聯(lián),所以 JSP 文件調(diào)用 Translator 對象的 getInstance(HttpServletRequest) 方法。由于為該方法傳遞的是一個(gè) HttpServletRequest 對象,所以該方法將能夠檢索與該網(wǎng)站訪問者的 HttpSession 相關(guān)的 Translator 實(shí)例。
| <% LoanTranslator ltLoan = LoanTranslator.getInstance(request); Hashtable htErrors = ltLoan.getErrors(); %> |
在此 JSP 文件示例中,網(wǎng)站訪問者將在表單的頂部看到所有處理錯(cuò)誤。用來顯示這些錯(cuò)誤消息的 HTML 是使用 <%= displayErrors(htErrors) %> 表達(dá)式輸出的。displayErrors() 方法是從 JSP 文件的超類 JspBase 中繼承而來的。有了 displayErrors(),用于顯示錯(cuò)誤消息的所有邏輯都被集中在一起,從而簡化了維護(hù)工作。
下面這段代碼模板適用于表單上的每個(gè)輸入域:
| <%= hightLightErrors(ltLoan.BORROWER_LAST_NAME, htErrors) %>Borrower Last Name: <INPUT name="<%= ltLoan.BORROWER_LAST_NAME %>" value="<%= ltLoan.getBorrowerLastName() %>"> |
highLightErrors() 是從 JSP 文件的超類 JspBase 中繼承而來的。如果某個(gè)輸入域有錯(cuò)誤,該方法將突出顯示該輸入域的標(biāo)簽。該方法接收兩個(gè)參數(shù):String 和Hashtable。該 Hashtable 是其中存儲著從 Translator 的實(shí)例檢索而來的錯(cuò)誤的 Translator。String 是正在檢查其是否有錯(cuò)誤的輸入域的名稱。如果存在與該域相關(guān)的錯(cuò)誤,highLightErrors() 就會返回突出顯示此輸入域的標(biāo)簽的 HTML。
在此代碼模板中,須注意的重要一點(diǎn)是:INPUT 標(biāo)記的 name 屬性是由一個(gè)表達(dá)式設(shè)置的,該表達(dá)式使用 LoanTranslator 對象的 BORROWER_LAST_NAME 常量。因?yàn)樵?JSP 文件中引用此域名時(shí)使用了一個(gè)常量,所以 Translator 對象和 servlet 的調(diào)試變得更加容易。使用常量更為容易,因?yàn)闊o論何時(shí)開發(fā)人員更改此域的名稱,他們都會獲得一個(gè)編譯錯(cuò)誤,而非運(yùn)行時(shí)錯(cuò)誤。查找編譯錯(cuò)誤要容易得多,因?yàn)榫幾g器會立即指出錯(cuò)誤,而運(yùn)行時(shí)錯(cuò)誤到調(diào)試和測試期間才能被發(fā)現(xiàn)。
相關(guān)Windows教程:
Windows教程Rss訂閱服務(wù)器教程搜索
Windows教程推薦
猜你也喜歡看這些
- 為應(yīng)用程序池 ''DefaultAppPool'' 提供服務(wù)的進(jìn)程關(guān)閉時(shí)間超過了限制
- 降低winnt Apache服務(wù)的權(quán)限,讓你的虛擬主機(jī)更安全
- Windows2003校園Web服務(wù)器常見問題
- IIS6架設(shè)網(wǎng)站常見問題及癥狀答疑
- IIS如何還原備份xml配置文件
- IIS的十七個(gè)常見安全漏洞
- nginx虛擬主機(jī)防webshell完美版
- linux 下設(shè)置apache開啟htaccess啟用步驟
- Apache開啟Gzip和Expires提升網(wǎng)頁加載速度
- 通過設(shè)置Web服務(wù)器日志讓IIS更安全
- 相關(guān)鏈接:
- 教程說明:
Windows教程-使用 Translator 模式構(gòu)建更好的網(wǎng)站(3)
。