Topic: 解決JSP程式撰寫不直覺、程式碼與UI混雜的痛: JSPWidget |
Print this page |
1.解決JSP程式撰寫不直覺、程式碼與UI混雜的痛: JSPWidget | Copy to clipboard |
Posted by: lee5518 Posted on: 2003-06-20 20:10 開發 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顯然不直覺多了。原因有三,茲並列比較如下: 1. Event-Driven Computing Model Client Forms : 你可以藉由撰寫事件處理函式 (Event Handler) 來處理由 GUI components所觸發的事件。 例如 Button 的 OnClick 事件或 DropdownList 的 OnSelectChanged 事件。 純 JSP : 因為JSP是由上到下循序處理 (Sequential Processing),因此你必須用程式來判斷到底使用者按了哪個按鈕, 使用者是否改變選定的選單項目等等,然後根據這些判斷結果來撰寫對應的程式碼。 2. GUI Compoment Client Forms : 所有 GUI Compoment 的屬性與行為都可以由程式碼完全存取與控制, 程式碼與 UI是完全分開的。 純 JSP : 因為JSP是由上到下循序處理 (Sequential Processing),因此你必須在適當的JSP檔案位置插入程式碼, 以改變 output 至瀏覽器的 UI。但這樣撰寫方式往往造成程式碼與 UI 混雜在一起,非常難維護與擴充。 3. Retain View State automatically Client Forms : 無庸置疑,在傳統的 client forms 中, GUI component 的狀態 (view state) 自動保持在最後使用者對它改變的狀態。 純 JSP : 因為 HTTP 是不保持狀態的 (Stateless),因此所有的 HTML element 的狀態 (View State )會在 post 回 web server 後就消失。 為了保持最後使用者對 GUI Compoment 改變的狀態 ,你必須要撰寫程式。 保持 HTML element 的狀態 (View State )並不容易,不同的 HTML element 需要用不同的處理方法。 通常,約有25%的程式碼單純為了這件在 Client Form 中視為理所當然的事。 附帶優點 除了上述的三個使用JSPWidget 的好處外, 另外下列附帶優點: 1. 自動傳回 (AutoPostBack) 2. 宣告式欄位編審(Declarative Validation) 3. 資料繫結(DataBinding) 這是由 恆逸資訊 所提供超好用而且免費的東西 網站上還有詳細的介紹和範例唷 http://edu.uuu.com.tw/jspwidget/ http://edu.uuu.com.tw/jspwidget/docs/jspwidget_introduction.htm 歡迎大家試試看唷~~~ |
2.Re:解決JSP程式撰寫不直覺、程式碼與UI混雜的痛: JSPWidget [Re: lee5518] | Copy to clipboard |
Posted by: juweiping Posted on: 2003-06-20 21:42 我想知道与JSF比有什么优势? |
3.Re:解決JSP程式撰寫不直覺、程式碼與UI混雜的痛: JSPWidget [Re: lee5518] | Copy to clipboard |
Posted by: nothing Posted on: 2003-06-22 13:47 大陆简体版: 开发 Web-based 应用程序已俨然成为企业应用未来的主流趋势,而 JSP 具备了 Java 跨平台及可存取 J2EE 架构中提供的所有服务等优点,更是企业在项目开发时考量的最佳网站技术。 |
4.Re:解決JSP程式撰寫不直覺、程式碼與UI混雜的痛: JSPWidget [Re: lee5518] | Copy to clipboard |
Posted by: supertoy Posted on: 2003-06-23 08:28 最大的问题,是完全在页面里写代码,设计思想还是完全在jsp里面写东西。比如drop down list就没有传递一个集合进去填充的概念, salmon有controller类,可以用那个来写代码逻辑,这个好像不行。 |
5.Re:解決JSP程式撰寫不直覺、程式碼與UI混雜的痛: JSPWidget [Re: lee5518] | Copy to clipboard |
Posted by: sutm Posted on: 2003-06-24 11:03 let me try |
6.Re:解決JSP程式撰寫不直覺、程式碼與UI混雜的痛: JSPWidget [Re: supertoy] | Copy to clipboard |
Posted by: lee5518 Posted on: 2003-07-02 12:15 supertoy wrote: The data source of this widget is a named scoped variable (a variable that is stored in one of the JSP scope), can be type of : 1. Array of primitives: the value and text of each option will be both set to each element in the array. 2. Array of Object: the value and text of each option will be both set to each element in the array. 3. Collection: the value and text of each option will be both set to each element in the collection. 4. Enumeration: the value and text of each option will be both set to each element of the enumeration. 5. Map: the value of each option will be set to the each value in the Map and the text will be set to the corresponding key in the Map. 6. Vector of Row: for ech Row, the value of each option will be set to the column indicated by the dataValueField attribute . And the text of each option will be set to the column indicated by the dataTextField attribute . 除了資料庫的值外,資料來源尚可為下列型別 : 1. 基本資料型別陣列 (Array of primitives): 清單項目顯示的值與選定的值皆為陣列中的各個元素。 2. 物件型別陣列 (Array of Object): 清單項目顯示的值與選定的值皆為陣列中的各個元素。 3. 集合 (Collection): 清單項目顯示的值與選定的值皆為集合中的各個元素。 4. 列舉表 (Enumeration): 清單項目顯示的值與選定的值皆為列舉表中的各個元素。 5. 對映(Map): 清單項目顯示的值為列舉表中各個鍵值 (Key),而 清單項目選定的值為各個鍵值所對應的值 (Value)。 6. Vector of Row: 清單項目為 Vector 中的各個 Row。 清單項目顯示的值為 dataTextField屬性所指定的欄位,而 清單項目選定的值為 dataValueField屬性所指定的欄位。 |
7.Re:解決JSP程式撰寫不直覺、程式碼與UI混雜的痛: JSPWidget [Re: lee5518] | Copy to clipboard |
Posted by: supertoy Posted on: 2003-07-04 14:06 没有controller,怎么弄也还是jsp里面嵌代码和tag,你注意看ASP.NET,每个叶面里有个CONTROLLER,可以在里面想写windows应用一样写东西。salmon才是 真正的和asp.net思想类同的东西。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |