使用 Translator 模式構建更好的網站(2)_Windows教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
最后,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 輸入表單如下所示:
在 Translator 模式中,所有表單都是 JSP 文件,而非 HTML 文件,所以輸入域的值可以是動態的。這一點很重要,因為我們網站的訪問者是實實在在的人,他們會犯輸入錯誤。比讓網站通知您它不接受您的輸入更糟糕的唯一一件事情是,讓它通知您它不接受您在某個域中輸入的內容,并要求您重新鍵入其他 20 個域,因為某個程序員正忙于檢查股市報價,沒有時間來提高輸入表單的用戶友好性。在 Translator 模式中,輸入表單的每個輸入域的值都是動態設置的,因此如果因存在輸入錯誤而需要向網站訪問者重新顯示輸入頁,他們就會看到突出顯示的錯誤,但其他輸入項仍然保留。
請記住,JSP 文件是由對 Java 代碼知之甚少或一無所知的網站設計者編寫和維護的。鑒于這個原因,我們希望 JSP 文件包含盡可能少的 Java 代碼。但我們在上一段的說明聽起來好像需要編寫大量的 Java 代碼。該 JSP 文件示例只有少量 Java 代碼,但它們主要位于表達式 (<%= x %>) 中。它們能夠使用這些眾多的功能,因為 JSP 文件從它的超類 com.ibm.igs.ispkcm.translator.JspBase 中繼承了這些代碼,并將大量代碼放在 Translator 對象中。
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 對象中。
相關Windows教程:
- 相關鏈接:
- 教程說明:
Windows教程-使用 Translator 模式構建更好的網站(2)
。