站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题解决jsp程序不直接、代码与UI混杂的痛: JSPWidget

解决jsp程序不直接、代码与UI混杂的痛: JSPWidget

摘要: 解决jsp程序不直接、代码与UI混杂的痛: JSPWidget

介绍一个非常不错的基于java、web的UI解决方案,用java做web应用的人都知道,web上UI开发的痛苦吧,UI表现上几乎没有什么现成的控件,这一点.net的确是比java要强一点,即使struts也没有提供很好的解决JSPWidget是一个台湾的开源的UI框架,它仿照.net的viewstate等思想,提供了事件驱动、页面状态保存(viewstate)、校验、以及常用组件(dropdownList、panel、treeView、menu)等解决方案。并且提供详细的文档和demo。其实在一年前就看到过这个项目了,今天偶尔又看到推荐给大家,希望可以学习、参考、借鉴他的思想。

项目地址:http://edu.uuu.com.tw/jspwidget

看一下他的Menu组件效果很cool吧:http://edu.uuu.com.tw/jspwidget/docs/gui/menu_03.jsp

下面是作者对webUI的一段分析:

設計目標

開發 Web-based 應用程式已儼然成為企業應用未來的主流趨勢,而 JSP 具備了 Java 跨平台及可存取 J2EE 架構中提供的所有服務等優點,更是企業在專案開發時考量的最佳網站技術。

然而,單單用 JSP 來開發 Web 專案並不容易,因為 JSP 是非事件驅動程式撰寫模式 ( Non Event-Driven Computing Model)、 UI (HTML Elements) 無法由程式碼直接控制、以及 UI 的狀態(View State)無法自動保存, 這些因素造成了JSP的程式碼與 UI 混合在一起,錯綜複雜的 UI/程式碼不僅在開發上不容易,也造成日後維護與擴充上的困難。

相較於傳統的 Client Forms 或 Client-based Web Applications 程式撰寫模式而言, JSP顯然不直覺多了。原因有三,茲並列比較如下:

<table style="FONT-SIZE: 11pt; BORDER-LEFT-COLOR: black; BORDER-BOTTOM-COLOR: black; BORDER-TOP-COLOR: black; FONT-FAMILY: Verdana; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #f4fff4; BORDER-RIGHT-COLOR: black" bordercolor="#000000" cellspacing="1" cellpadding="3" rules="all" width="100%" border="1"><tr style="BACKGROUND-COLOR: lightblue"><td>因素 </td><td>Client Forms </td><td>純 JSP </td></tr><tr><td>Event-Driven Computing Model </td><td valign="top">你可以藉由撰寫事件處理函式 (Event Handler) 來處理由 GUI components所觸發的事件。 例如 Button 的 OnClick 事件或 DropdownList 的 OnSelectChanged 事件。 </td><td valign="top">因為JSP是由上到下循序處理 (Sequential Processing),因此你必須用程式來判斷到底使用者按了哪個按鈕, 使用者是否改變選定的選單項目等等,然後根據這些判斷結果來撰寫對應的程式碼。 </td></tr><tr><td>GUI Compoment </td><td valign="top">所有 GUI Compoment 的屬性與行為都可以由程式碼完全存取與控制, 程式碼與 UI是完全分開的。 </td><td valign="top">因為JSP是由上到下循序處理 (Sequential Processing),因此你必須在適當的JSP檔案位置插入程式碼, 以改變 output 至瀏覽器的 UI。但這樣撰寫方式往往造成程式碼與 UI 混雜在一起,非常難維護與擴充。 </td></tr><tr><td>Retain View State automatically </td><td valign="top">無庸置疑,在傳統的 client forms 中, GUI component 的狀態 (view state) 自動保持在最後使用者對它改變的狀態。 </td><td valign="top">因為 HTTP 是不保持狀態的 (Stateless),因此所有的 HTML element 的狀態 (View State )會在 post 回 web server 後就消失。 為了保持最後使用者對 GUI Compoment 改變的狀態 ,你必須要撰寫程式。 保持 HTML element 的狀態 (View State )並不容易,不同的 HTML element 需要用不同的處理方法。 通常,約有25%的程式碼單純為了這件在 Client Form 中視為理所當然的事。 </td></tr></table>

JSPWidget是在 JSP 標準上建置的一套 Framework,它的設計目標便是為了讓程式設計師可以直覺地方式來開發JSP Web 應用系統,就像是在開發傳統的 Client Form 一樣輕鬆簡單 。

原文地址:http://edu.uuu.com.tw/jspwidget/docs/jspwidget_introduction.htm



↑返回目录
前一篇: 复杂类型javabean(数组成员)在jsp中的运用:在jsp页面间传递数组
后一篇: JSTL实现JSP应用程序快速开发