日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

使用 Translator 模式構(gòu)建更好的網(wǎng)站(5)_Windows教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!
對于要在 JSP 文件中顯示的每個業(yè)務(wù)對象值,Translator 都提供了一個 getter 方法。這些 getter 方法由 JSP 文件調(diào)用。必須在 JSP 文件中顯示的每個業(yè)務(wù)對象屬性都有一個 getter 方法。getter 方法總是返回一個 String。返回的 String 值已被預(yù)先格式化,以便直接在 JSP 文件中顯示。預(yù)先格式化 String 是為了使 JSP 文件中的 Java 代碼盡可能少。對這些值的格式化改為在 syncGuiToModel() 中進行。

  Translator 使用 processForm() 清除以前顯示的錯誤,并從提交的表單中分析此信息。當 servlet 接收到一個提交的表單時,它就會將對該表單的處理委托給 Translator。在本委托期間,Translator 分析提交表單的值,并將這些值分別存儲在 String 變量中。這些存儲變量隨后通過 syncModelToGui()(由 servlet 調(diào)用)轉(zhuǎn)換為業(yè)務(wù)對象的值。

  syncGuiToModel() 和 syncModelToGui() 是兩個類似的方法,顧名思義,其中一個方法按某個方向?qū)χ祱?zhí)行同步,而另一個方法按相反的方向執(zhí)行同步。syncGuiToModel() 從業(yè)務(wù)對象的屬性中提取這些值,并使用 Object Translator 預(yù)先格式化每個屬性值。Object Translator 將值預(yù)先格式化為要在屏幕上顯示的值。隨后,它將 Translator 的對應(yīng) String 變量設(shè)置為這個值。syncModelToGui() 執(zhí)行的操作相同,但方向相反。下面是從典型的 syncGuiToModel() 中摘出的一小段代碼:

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

  為了使轉(zhuǎn)換代碼具有最大的可重用性,并為整個站點提供一種共同的轉(zhuǎn)換,syncGuiToModel() 和 syncModelToGui() 使用的都是 Object Translator 類。Object Translators 與 Translator 對象聯(lián)系得如此緊密,以致于幾乎可將它們看作是 Translator 對象的規(guī)則。Object Translator 類是一個簡單的類,它的唯一用途就是將一種數(shù)據(jù)類型轉(zhuǎn)換為格式化字符串,以及將格式化字符串轉(zhuǎn)換為它的數(shù)據(jù)類型。下面是一個很簡單的 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 轉(zhuǎn)換為格式化的 String 時,它只需調(diào)用 Double.toString()。這個方法可實現(xiàn)更強大的功能,例如,可以添加幾行代碼,使得當格式化類似 1000.25 這樣的大 double 值時,可預(yù)格式化這個值,以便顯示為 1,000.25。

  對于 DoubleTranslator.translate(String),須注意的重要一點是,它會發(fā)出一個可讀性很好的異常,而不是標準的 Java.lang.NumberFormatException 異常。JSP 文件將此異常的消息直接顯示給網(wǎng)站訪問者,因此,讓網(wǎng)站的普通訪問者很容易地理解該方法發(fā)出的異常是非常重要的。

  4. 小結(jié)

  使用 Translator 模式框架的優(yōu)點很多,不僅可以降低網(wǎng)站的成本,而且可以提高用戶的滿意度。由于不同組件都只執(zhí)行專門的任務(wù),因而網(wǎng)站的構(gòu)建成本降低了。這些專門任務(wù)分配給生產(chǎn)小組,如 HTML 小組或 Java 程序員小組。因為 Translator 模式的 ObjectTranslators 在整個網(wǎng)站重用,所有全部格式化和分析都是以相同的方式進行的。因為每項任務(wù)都以相同的方式完成,所以網(wǎng)站訪問者就能夠以一致的方式查看整個網(wǎng)站的信息。這進一步提高了用戶的滿意度。

來源:網(wǎng)絡(luò)搜集//所屬分類:Windows教程/更新時間:2012-05-06
相關(guān)Windows教程