有關(guān)此代碼模板的最后一個(gè)(也是最重要的一個(gè))注意事項(xiàng)是:INPUT 標(biāo)記的 value 屬性是由一個(gè)表達(dá)式設(shè)置的,該表達(dá)式使用了 Translator 的一個(gè) getter 方法。value="<%= ltLoan.getBorrowerLastName() %> 這行代碼是此模式最重要的部分之一,因?yàn)樗褪鞘馆斎胗虻闹等笔榫W(wǎng)站訪問(wèn)者最初輸入的值的代碼。通過(guò)將此值缺省設(shè)置為網(wǎng)站訪問(wèn)者最初輸入的值,訪問(wèn)者就能看到他最初輸入的內(nèi)容,并很容易地修正他的錯(cuò)誤。這節(jié)省了網(wǎng)站訪問(wèn)者的時(shí)間,并能使其獲得更好的用戶體驗(yàn)。
servlet
下面是一個(gè)典型的簡(jiǎn)化 servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response) { // 缺省設(shè)置是使用戶返回輸入頁(yè)。 String sRedirect = LOAN_JSP;
// 獲取 Translator 的正確實(shí)例 LoanTranslator ltTrans = LoanTranslator.getInstance(request);
// 現(xiàn)在有了 Translator 的一個(gè)實(shí)例 ltTrans.processForm(request);
// 獲取 Loan 的正確版本的邏輯 Loan lnTheLoan = null; if (ltTrans.isNew () == true) { // 創(chuàng)建新 Loan } else { // 獲得現(xiàn)有的 loan } // Sync the Loan object values to values in the submitted form. ltTrans.syncModelToGui(lnTheLoan);
// 確保未出現(xiàn)任何錯(cuò)誤 if (ltTrans.hasErrors() == false) { // 提交 Loan 信息,然后將重定向設(shè)置為正確的尾隨頁(yè) sRedirect = LOAN_CONFIRMATION; }
// 將網(wǎng)站訪問(wèn)者重定向?yàn)楫?dāng)前工資。 try { response.sendRedirect(sRedirect); } catch (Exception e) { // 錯(cuò)誤邏輯 } } |
servlet 的主要用途是控制 JSP 文件之間的導(dǎo)航流以及對(duì)業(yè)務(wù)對(duì)象執(zhí)行持久化。此 servlet 的代碼很簡(jiǎn)單。