国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

使用 Translator 模式構建更好的網站(2)

2024-09-10 00:02:34
字體:
來源:轉載
供稿:網友
最后,servlet 專用于處理導航流和業務對象的持久性。當 servlet 接收到提交表單時,它將獲得 Translator 對象的一個實例,并使用 processForm() 方法將對表單的分析委派給 Translator 對象。在表單的分析完成以后,servlet 就會讓 Translator 對象使用 syncModelToGui() 方法將業務對象的值同步為表單中所提交的值。在成功轉換所提交的值并將它們設置到業務對象上之后,servlet 將對業務對象執行持久化,并向網頁訪問者顯示確認頁。

  2. 給我顯微鏡

  下面我們仔細查看 Translator 模式的三個部分:JSP 文件、servlet 和 Translator 對象。(本文的示例遵循的是 Servlet 2.1 規范和 JSP 1.0 規范。這些示例是在 WebSphere 3.02 和 WebSphere 3.5 環境下構建和測試的。)

  JSP 文件

  使用 Translator 模式的典型 JSP 輸入表單如下所示:

<%@ page extends="com.ibm.igs.ispkcm.translator.JspBase"
import="com.ibm.developerworks.translatorpattern.LoanTranslator,
Java.util.Hashtable"%>
<HTML>
<%
LoanTranslator ltLoan = LoanTranslator.getInstance(request);
Hashtable htErrors = ltLoan.getErrors();
%>
<HEAD>
</HEAD>
<BODY>
<%= displayErrors(htErrors) %>
<action="/servlet/com.ibm.developerworks.translatorpattern.LoanRegistrationServlet">
<%= hightLightErrors(ltLoan.BORROWER_LAST_NAME, htErrors) %>Borrower Last Name:
<INPUT name="<%= ltLoan.BORROWER_LAST_NAME %>"
value="<%= ltLoan.getBorrowerLastName() %>">
</FORM>
</BODY>
</HTML>

  在 Translator 模式中,所有表單都是 JSP 文件,而非 HTML 文件,所以輸入域的值可以是動態的。這一點很重要,因為我們網站的訪問者是實實在在的人,他們會犯輸入錯誤。比讓網站通知您它不接受您的輸入更糟糕的唯一一件事情是,讓它通知您它不接受您在某個域中輸入的內容,并要求您重新鍵入其他 20 個域,因為某個程序員正忙于檢查股市報價,沒有時間來提高輸入表單的用戶友好性。在 Translator 模式中,輸入表單的每個輸入域的值都是動態設置的,因此如果因存在輸入錯誤而需要向網站訪問者重新顯示輸入頁,他們就會看到突出顯示的錯誤,但其他輸入項仍然保留。

  請記住,JSP 文件是由對 Java 代碼知之甚少或一無所知的網站設計者編寫和維護的。鑒于這個原因,我們希望 JSP 文件包含盡可能少的 Java 代碼。但我們在上一段的說明聽起來好像需要編寫大量的 Java 代碼。該 JSP 文件示例只有少量 Java 代碼,但它們主要位于表達式 (<%= x %>) 中。它們能夠使用這些眾多的功能,因為 JSP 文件從它的超類 com.ibm.igs.ispkcm.translator.JspBase 中繼承了這些代碼,并將大量代碼放在 Translator 對象中。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒲江县| 从化市| 灵川县| 华亭县| 贺州市| 三门县| 故城县| 松江区| 高唐县| 汨罗市| 麻江县| 共和县| 新晃| 博野县| 准格尔旗| 宁海县| 红桥区| 兴宁市| 郴州市| 澳门| 彭泽县| 聊城市| 盐津县| 松溪县| 库尔勒市| 武宣县| 秦安县| 巴林左旗| 潜山县| 浦北县| 遂宁市| 改则县| 大化| 皋兰县| 沅江市| 大同县| 新营市| 安宁市| 淅川县| 宜兰市| 樟树市|