使用 Translator 模式構(gòu)建更好的網(wǎng)站(2)_Windows教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
最后,servlet 專用于處理導航流和業(yè)務(wù)對象的持久性。當 servlet 接收到提交表單時,它將獲得 Translator 對象的一個實例,并使用 processForm() 方法將對表單的分析委派給 Translator 對象。在表單的分析完成以后,servlet 就會讓 Translator 對象使用 syncModelToGui() 方法將業(yè)務(wù)對象的值同步為表單中所提交的值。在成功轉(zhuǎn)換所提交的值并將它們設(shè)置到業(yè)務(wù)對象上之后,servlet 將對業(yè)務(wù)對象執(zhí)行持久化,并向網(wǎng)頁訪問者顯示確認頁。
2. 給我顯微鏡
下面我們仔細查看 Translator 模式的三個部分:JSP 文件、servlet 和 Translator 對象。(本文的示例遵循的是 Servlet 2.1 規(guī)范和 JSP 1.0 規(guī)范。這些示例是在 WebSphere 3.02 和 WebSphere 3.5 環(huán)境下構(gòu)建和測試的。)
JSP 文件
使用 Translator 模式的典型 JSP 輸入表單如下所示:
在 Translator 模式中,所有表單都是 JSP 文件,而非 HTML 文件,所以輸入域的值可以是動態(tài)的。這一點很重要,因為我們網(wǎng)站的訪問者是實實在在的人,他們會犯輸入錯誤。比讓網(wǎng)站通知您它不接受您的輸入更糟糕的唯一一件事情是,讓它通知您它不接受您在某個域中輸入的內(nèi)容,并要求您重新鍵入其他 20 個域,因為某個程序員正忙于檢查股市報價,沒有時間來提高輸入表單的用戶友好性。在 Translator 模式中,輸入表單的每個輸入域的值都是動態(tài)設(shè)置的,因此如果因存在輸入錯誤而需要向網(wǎng)站訪問者重新顯示輸入頁,他們就會看到突出顯示的錯誤,但其他輸入項仍然保留。
請記住,JSP 文件是由對 Java 代碼知之甚少或一無所知的網(wǎng)站設(shè)計者編寫和維護的。鑒于這個原因,我們希望 JSP 文件包含盡可能少的 Java 代碼。但我們在上一段的說明聽起來好像需要編寫大量的 Java 代碼。該 JSP 文件示例只有少量 Java 代碼,但它們主要位于表達式 (<%= x %>) 中。它們能夠使用這些眾多的功能,因為 JSP 文件從它的超類 com.ibm.igs.ispkcm.translator.JspBase 中繼承了這些代碼,并將大量代碼放在 Translator 對象中。
2. 給我顯微鏡
下面我們仔細查看 Translator 模式的三個部分:JSP 文件、servlet 和 Translator 對象。(本文的示例遵循的是 Servlet 2.1 規(guī)范和 JSP 1.0 規(guī)范。這些示例是在 WebSphere 3.02 和 WebSphere 3.5 環(huán)境下構(gòu)建和測試的。)
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 文件,所以輸入域的值可以是動態(tài)的。這一點很重要,因為我們網(wǎng)站的訪問者是實實在在的人,他們會犯輸入錯誤。比讓網(wǎng)站通知您它不接受您的輸入更糟糕的唯一一件事情是,讓它通知您它不接受您在某個域中輸入的內(nèi)容,并要求您重新鍵入其他 20 個域,因為某個程序員正忙于檢查股市報價,沒有時間來提高輸入表單的用戶友好性。在 Translator 模式中,輸入表單的每個輸入域的值都是動態(tài)設(shè)置的,因此如果因存在輸入錯誤而需要向網(wǎng)站訪問者重新顯示輸入頁,他們就會看到突出顯示的錯誤,但其他輸入項仍然保留。
請記住,JSP 文件是由對 Java 代碼知之甚少或一無所知的網(wǎng)站設(shè)計者編寫和維護的。鑒于這個原因,我們希望 JSP 文件包含盡可能少的 Java 代碼。但我們在上一段的說明聽起來好像需要編寫大量的 Java 代碼。該 JSP 文件示例只有少量 Java 代碼,但它們主要位于表達式 (<%= x %>) 中。它們能夠使用這些眾多的功能,因為 JSP 文件從它的超類 com.ibm.igs.ispkcm.translator.JspBase 中繼承了這些代碼,并將大量代碼放在 Translator 對象中。
相關(guān)Windows教程:
- 相關(guān)鏈接:
- 教程說明:
Windows教程-使用 Translator 模式構(gòu)建更好的網(wǎng)站(2)
。