2009-08-19 107 views
1

在工作中,我們正在討論升級我們的Web應用程序的視圖層。我們目前正在運行一箇舊的和經過修改的FreeMarker Classic版本,這是一個很難處理的問題。我們的一位開發人員建議使用類似於桌面風格環境的Component UI風格架構。用於Java Web應用程序的類似桌面的UI實現?

實質上,這意味着您將構建自定義HTML組件作爲控制器將呈現到文檔視圖中的Java類。這完全消除了將HTML寫入視圖圖層的需要。這些組件將爲您生成視圖圖層。

例如,下面呈現的HTML:

<h1>I am a title</h1> 
<p>I am a paragraph.</p> 

會做類似的東西產生:

String titleString = "I am a title"; 
html.elements.Heading heading = new html.elements.Heading(Heading.H1, titleString); 

String paraString = "I am a paragraph."; 
html.elements.Paragraph paragraph = new html.elements.Paragraph(paraString); 

PrintWriter somePrintWriter = new PrintWriter(); 
Document document = new Document(); 
document.addElement(heading); 
document.addElement(paragraph); 
document.compose(somePrintWriter); 

上面的代碼只是一個例子,不批判名稱或風格,我只是寫它來快速演示我們可能試圖完成的事情。我試圖確定這是否已經在Java中完成,如果有的話,如果有任何鏈接,我可以指出。我一直在儘可能多地研究它,但還沒有找到完全刪除模板層的任何實現(例如JSP或JSF)。

謝謝!

+0

你不想要模板層嗎?我發表了一篇文章,但是當我讀到最後一句話時很快就刪除了它。 – MattC 2009-08-19 22:35:01

+0

對,我們試圖看看是否可以完全消除模板,因爲控制器中的所有業務邏輯都可以處理視圖中呈現的內容。 – localshred 2009-08-19 22:42:24

+0

許多答案都集中在完整的框架上。很高興看到,但我們更關心的是我們可以與現有系統集成的GUI工具包。 不知道它是否在那裏,但都一樣,只是想清楚。 – localshred 2009-08-19 22:58:42

回答

0

GWT怎麼樣?

+0

這似乎更適合我們正在尋找的Ajax,除非我完全失去了一些東西。這絕對是沿着同樣的路線。 – localshred 2009-08-19 22:51:44

0

Echo2/Echo3可能會有用。

回聲是構建接近富客戶端的 能力 基於Web的應用程序的平臺。 應用程序是使用面向組件的事件驅動的 API開發的,無需處理瀏覽器的「基於頁面」的本質。 對於開發者來說,Echo的工作原理與 一樣是一個用戶界面工具包。

+0

這看起來像是我們正在努力完成的最接近的事情。唯一的問題是它是一個完整的框架,我們無法實現。我們正在嚴格考慮視圖架構。 – localshred 2009-08-19 22:56:15

0

我使用GWT-Ext爲基於Java的Web應用程序創建桌面感覺。它非常受歡迎,感覺非常像您根本不在網絡瀏覽器中。

+0

我會檢查這一點,但我不確定我們正在尋找一個SproutCore類型的實現,其中應用程序看起來像一個桌面應用程序。我們只是想要組件UI風格的技巧。 – localshred 2009-08-19 22:53:37

0

Click與您所描述的內容非常接近。它確實使用了Velocity,但是如果你看一下高級形式的例子,模板是非常基本的。

wingS是另一個看起來接近你想要的東西。它應該是Swing。

相關問題