快速业务通道

使用 Translator 模式构建更好的网站(2)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-06

最后,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 对象中。 关键词:网站

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号