2008-11-06 70 views
2

我們需要一些關於在Java應用程序中使用AJAX的良好設計模式的輸入。推薦的Java/AJAX設計模式?

考慮一個簡單的場景:

  1. 用戶點擊一個按鈕,它發送到Java方法的請求,以從DB獲取數據。
  2. Java對象由方法返回並需要轉換爲HTML表格。
  3. HTML表格顯示在JSP上。

我們目前做的:

  1. 在JSP頁面中,用戶點擊「顯示用戶」按鈕
  2. 按鈕使用prototype.js所謂的「中間人」 JSP轉發請求Java方法從數據庫中獲取數據。
  3. 該方法將Java對象返回給將Java對象轉換爲HTML的「中間人」JSP(因爲來自調用JSP的AJAX調用將無法直接處理Java對象)。
  4. 然後HTML返回到Prototype調用,它更新調用JSP上的div。

我們關注的是:

  1. 我們希望保持業務/演示邏輯的分離,並希望我們的Java方法內沒有HTML/JavaScript代碼。
  2. 記住(1),有一個「中間人」的JSP一個好方法來做到這一點?還是應該將Java對象作爲XML/XSLT返回給AJAX請求?
  3. 上述方法我們所做的JavaScript很少,適用於所有瀏覽器。
  4. 我們研究了一些其他軟件包-DWR,GWT,但要麼對JavaScript中的依賴過多,要麼在Java類中存在所需的UI組件。

我們的做事方式好嗎?還是有另一種更好的方法?

任何幫助/想法,將不勝感激。

感謝,

SP

回答

2

聽起來不錯。您將視圖組件與模型組件分離。不管服務器是如何調用服務器的,AJAX與否,它都應該被一個與模型交互的控制器(一個servlet所說)接收,這就是你的Java類,它從數據庫獲取數據並轉發給用於呈現視圖的JSP頁面。

有框架可以簡化樣板代碼,但您描述的設計聽起來很好。

0

我不確定你是否注意到了,但是你的解決方案和文森特提出的有什麼不同。這就是請求最初應該由一個servlet(或控制器,或Struts動作等)接收)而不是「中間人」JSP。

MVC規定JSP應該只用於從模型數據生成視圖,流控制最好在Java代碼中處理。

+0

不,是的,我確實發現了......我們也計劃推行這條路線。儘管如此,感謝後續。 Regards, SP – spie 2008-11-07 05:58:51