麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > Win服務器 > 正文

使用 Translator 模式構建更好的網(wǎng)站(3)

2024-09-10 00:03:06
字體:
來源:轉載
供稿:網(wǎng)友
在此 JSP 文件中,要注意的第一點是它有一個 page 指令標記。這是因為它需要繼承一個超類,并需要導入兩個類。JSP 文件繼承了超類 com.ibm.igs.ispkcm.translator.JspBase,因為 JspBase 包括一些很好的實用函數(shù),它使得 JSP 文件可包含更少的代碼。該 JSP 文件所用的主要實用函數(shù)是 displayErrors() 和 highLightErrors()。該 page 指令導入 LoanTranslator 和 Hashtable,因為 JSP 文件中引用了這兩個類,導入這兩個類是為了以后在此 JSP 代碼中引用這兩個類時不必使用它們完全限定的類名。以下代碼顯示了 import 語句的一個示例:

<%@ page extends="com.ibm.igs.ispkcm.translator.JspBase"
import="com.ibm.developerworks.translatorpattern.LoanTranslator,
Java.util.Hashtable"%>

  JSP 文件中第一行真正的 Java 代碼獲取 Translator 對象的一個實例,然后獲取一個 Hashtable,其中存儲著屬于 Translator 對象的那個實例的錯誤。因為 JSP 文件(在編譯后)是一個 servlet,所以它是一個無狀態(tài)的服務對象。Translator 對象將在特定 JSP 文件或 servlet 的不同往返之間維護必要的狀態(tài)信息。狀態(tài)信息應僅限于網(wǎng)站訪問者輸入的值和要向網(wǎng)站訪問者顯示的任何處理錯誤。因為 Translator 對象的每個實例都與一個特定的網(wǎng)站訪問者相關聯(lián),所以 JSP 文件調用 Translator 對象的 getInstance(HttpServletRequest) 方法。由于為該方法傳遞的是一個 HttpServletRequest 對象,所以該方法將能夠檢索與該網(wǎng)站訪問者的 HttpSession 相關的 Translator 實例。

<%
LoanTranslator ltLoan = LoanTranslator.getInstance(request);
Hashtable htErrors = ltLoan.getErrors();
%>

  在此 JSP 文件示例中,網(wǎng)站訪問者將在表單的頂部看到所有處理錯誤。用來顯示這些錯誤消息的 HTML 是使用 <%= displayErrors(htErrors) %> 表達式輸出的。displayErrors() 方法是從 JSP 文件的超類 JspBase 中繼承而來的。有了 displayErrors(),用于顯示錯誤消息的所有邏輯都被集中在一起,從而簡化了維護工作。

  下面這段代碼模板適用于表單上的每個輸入域:

<%= hightLightErrors(ltLoan.BORROWER_LAST_NAME, htErrors) %>Borrower Last Name:
<INPUT name="<%= ltLoan.BORROWER_LAST_NAME %>"
value="<%= ltLoan.getBorrowerLastName() %>">

  highLightErrors() 是從 JSP 文件的超類 JspBase 中繼承而來的。如果某個輸入域有錯誤,該方法將突出顯示該輸入域的標簽。該方法接收兩個參數(shù):String 和Hashtable。該 Hashtable 是其中存儲著從 Translator 的實例檢索而來的錯誤的 Translator。String 是正在檢查其是否有錯誤的輸入域的名稱。如果存在與該域相關的錯誤,highLightErrors() 就會返回突出顯示此輸入域的標簽的 HTML。

  在此代碼模板中,須注意的重要一點是:INPUT 標記的 name 屬性是由一個表達式設置的,該表達式使用 LoanTranslator 對象的 BORROWER_LAST_NAME 常量。因為在 JSP 文件中引用此域名時使用了一個常量,所以 Translator 對象和 servlet 的調試變得更加容易。使用常量更為容易,因為無論何時開發(fā)人員更改此域的名稱,他們都會獲得一個編譯錯誤,而非運行時錯誤。查找編譯錯誤要容易得多,因為編譯器會立即指出錯誤,而運行時錯誤到調試和測試期間才能被發(fā)現(xiàn)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: xnxx18日本| 日韩大片在线永久观看视频网站免费 | 日韩毛片网| 色呦呦一区二区三区 | 原来神马影院手机版免费 | 4p嗯啊巨肉寝室调教男男视频 | 精品亚洲福利一区二区 | 黄色片免费看网站 | 自拍亚洲伦理 | xxx日本视频 | 午夜天堂在线视频 | 亚洲热线99精品视频 | 午夜影院在线免费观看 | 97中文字幕第一一一页 | 欧美人的天堂一区二区三区 | 国产一级aaa全黄毛片 | 蜜桃网站在线 | 一级黄色影院 | 5a级毛片| 国产精品久久久久久久四虎电影 | 国产中文av在线 | 国产精品久久久久久久久粉嫩 | 快播av在线 | 国产欧美日韩视频在线观看 | 中文字幕电影免费播放 | 亚洲综合网站 | 亚洲视频精选 | 羞羞网站视频 | 99精品欧美一区二区 | 久久精品免费国产 | www亚洲成人 | 九九热在线免费观看视频 | 精品免费国产一区二区三区 | 精品二区在线观看 | 黄视频免费在线观看 | 久久精品日韩一区 | av在线免费播放 | 中文字幕在线看第二 | 欧美一级特黄aaaaaa在线看首页 | 成人精品久久 | 97se亚洲综合在线韩国专区福利 |