日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

使用 Translator 模式構(gòu)建更好的網(wǎng)站(3)_Windows教程

編輯Tag賺U幣
教程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è)示例:

<%@ 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)。

來源:網(wǎng)絡(luò)搜集//所屬分類:Windows教程/更新時(shí)間:2013-04-16
相關(guān)Windows教程