首页 > 服务器 > Win服务器 > 正文

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

2024-09-10 00:02:23
字体:
来源:转载
供稿:网友
对于要在 JSP 文件中显示的每个业务对象值,Translator 都提供了一个 getter 方法。这些 getter 方法由 JSP 文件调用。必须在 JSP 文件中显示的每个业务对象属性都有一个 getter 方法。getter 方法总是返回一个 String。返回的 String 值已被预先格式化,以便直接在 JSP 文件中显示。预先格式化 String 是为了使 JSP 文件中的 Java 代码尽可能少。对这些值的格式化改为在 syncGuiToModel() 中进行。

  Translator 使用 processForm() 清除以前显示的错误,并从提交的表单中分析此信息。当 servlet 接收到一个提交的表单时,它就会将对该表单的处理委托给 Translator。在本委托期间,Translator 分析提交表单的值,并将这些值分别存储在 String 变量中。这些存储变量随后通过 syncModelToGui()(由 servlet 调用)转换为业务对象的值。

  syncGuiToModel() 和 syncModelToGui() 是两个类似的方法,顾名思义,其中一个方法按某个方向对值执行同步,而另一个方法按相反的方向执行同步。syncGuiToModel() 从业务对象的属性中提取这些值,并使用 Object Translator 预先格式化每个属性值。Object Translator 将值预先格式化为要在屏幕上显示的值。随后,它将 Translator 的对应 String 变量设置为这个值。syncModelToGui() 执行的操作相同,但方向相反。下面是从典型的 syncGuiToModel() 中摘出的一小段代码:

DoubleTranslator dtDouble = new DoubleTranslator();
String sTemp = dtDouble.translate(loan.getInterestRate());
setInterestRate(sTemp);

  为了使转换代码具有最大的可重用性,并为整个站点提供一种共同的转换,syncGuiToModel() 和 syncModelToGui() 使用的都是 Object Translator 类。Object Translators 与 Translator 对象联系得如此紧密,以致于几乎可将它们看作是 Translator 对象的规则。Object Translator 类是一个简单的类,它的唯一用途就是将一种数据类型转换为格式化字符串,以及将格式化字符串转换为它的数据类型。下面是一个很简单的 Object Translator 类的代码:

public class DoubleTranslator extends ObjectTranslator
{
public String translate(double doubleValue)
{
return Double.toString(doubleValue);
}

public double translate(String stringToBeTranslated) throws Exception
{
double dRV = 0.0;

try {
Double dbDouble = Double.valueOf(stringToBeTranslated);
dRV = dbDouble.doubleValue();
}
catch(Exception e)
{
Exception eTranslation =
new Exception("Please enter a numeric value like 1.0 or 1.25");
throw eTranslation;
}

return dRV;
}
}

  当这个样例 Object Translator 将 double 转换为格式化的 String 时,它只需调用 Double.toString()。这个方法可实现更强大的功能,例如,可以添加几行代码,使得当格式化类似 1000.25 这样的大 double 值时,可预格式化这个值,以便显示为 1,000.25。

  对于 DoubleTranslator.translate(String),须注意的重要一点是,它会发出一个可读性很好的异常,而不是标准的 Java.lang.NumberFormatException 异常。JSP 文件将此异常的消息直接显示给网站访问者,因此,让网站的普通访问者很容易地理解该方法发出的异常是非常重要的。

  4. 小结

  使用 Translator 模式框架的优点很多,不仅可以降低网站的成本,而且可以提高用户的满意度。由于不同组件都只执行专门的任务,因而网站的构建成本降低了。这些专门任务分配给生产小组,如 HTML 小组或 Java 程序员小组。因为 Translator 模式的 ObjectTranslators 在整个网站重用,所有全部格式化和分析都是以相同的方式进行的。因为每项任务都以相同的方式完成,所以网站访问者就能够以一致的方式查看整个网站的信息。这进一步提高了用户的满意度。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表