快速业务通道

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

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

在此 JSP 文件中,要注意的第一点是它有一个 page 指令标记。这是因为它需要继承一个超类,并需要导入两个类。JSP 文件继承了超类 com.ibm.igs.ispkcm.translator.JspBase,因为 JspBase 包括一些很好的实用函数,它使得 JSP 文件可包含更少的代码。该 JSP 文件所用的主要实用函数是 displayErrors() 和 highLightErrors()。该 page 指令导入 LoanTranslator 和 Hashtable,因为 JSP 文件中引用了这两个类,导入这两个类是为了以后在此 JSP 代码中引用这两个类时不必使用它们完全限定的类名。以下代码显示了 import 语句的一个示例:

<%@ page extends="com.ibm.igs.ispkcm.translator.JspBase"
import="com.ibm.developerworks.translatorpattern.LoanTranslator,
Java.util.Hashtable"%>

  JSP 文件中第一行真正的 Java 代码获取 Translator 对象的一个实例,然后获取一个 Hashtable,其中存储着属于 Translator 对象的那个实例的错误。因为 JSP 文件(在编译后)是一个 servlet,所以它是一个无状态的服务对象。Translator 对象将在特定 JSP 文件或 servlet 的不同往返之间维护必要的状态信息。状态信息应仅限于网站访问者输入的值和要向网站访问者显示的任何处理错误。因为 Translator 对象的每个实例都与一个特定的网站访问者相关联,所以 JSP 文件调用 Translator 对象的 getInstance(HttpServletRequest) 方法。由于为该方法传递的是一个 HttpServletRequest 对象,所以该方法将能够检索与该网站访问者的 HttpSession 相关的 Translator 实例。

<%
LoanTranslator ltLoan = LoanTranslator.getInstance(request);
Hashtable htErrors = ltLoan.getErrors();
%>

  在此 JSP 文件示例中,网站访问者将在表单的顶部看到所有处理错误。用来显示这些错误消息的 HTML 是使用 <%= displayErrors(htErrors) %> 表达式输出的。displayErrors() 方法是从 JSP 文件的超类 JspBase 中继承而来的。有了 displayErrors(),用于显示错误消息的所有逻辑都被集中在一起,从而简化了维护工作。

  下面这段代码模板适用于表单上的每个输入域:

<%= hightLightErrors(ltLoan.BORROWER_LAST_NAME, htErrors) %>Borrower Last Name:
<INPUT name="<%= ltLoan.BORROWER_LAST_NAME %>"
value="<%= ltLoan.getBorrowerLastName() %>">

  highLightErrors() 是从 JSP 文件的超类 JspBase 中继承而来的。如果某个输入域有错误,该方法将突出显示该输入域的标签。该方法接收两个参数:String 和Hashtable。该 Hashtable 是其中存储着从 Translator 的实例检索而来的错误的 Translator。String 是正在检查其是否有错误的输入域的名称。如果存在与该域相关的错误,highLightErrors() 就会返回突出显示此输入域的标签的 HTML。

  在此代码模板中,须注意的重要一点是:INPUT 标记的 name 属性是由一个表达式设置的,该表达式使用 LoanTranslator 对象的 BORROWER_LAST_NAME 常量。因为在 JSP 文件中引用此域名时使用了一个常量,所以 Translator 对象和 servlet 的调试变得更加容易。使用常量更为容易,因为无论何时开发人员更改此域的名称,他们都会获得一个编译错误,而非运行时错误。查找编译错误要容易得多,因为编译器会立即指出错误,而运行时错误到调试和测试期间才能被发现。 关键词:网站

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

分享到: 更多
上一篇: J2EE概述(5)下一篇: J2EE概述(1)

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号