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

js|程序|解决

介绍一个非常不错的基于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顯然不直覺多了。原因有三,茲並列比較如下:

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

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

时间: 2024-12-01 20:01:23

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

在Jsp程序读取或向DB写入数据乱码解决办法

js|程序|解决|数据 在Jsp程序读取或向DB写入数据乱码解决办法 在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号.这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题.以前我也经常为这个问题而苦恼,后来经查了些资料,终于解决了,我知道一定有很多朋友也会碰到这个问题,所以特就总结了一下,来拿出来让大家一起分享了.1.在网页中输出中文.JAVA在网络传输中使用的编码是"ISO-8859

已有jsp程序,怎样修改图片?jsp页面数据库内容显示不出来怎么解决?具体内容见描述

问题描述 已有jsp程序,怎样修改图片?jsp页面数据库内容显示不出来怎么解决?具体内容见描述 已有jsp程序,发布之后理应是但是我发布出来却是求大神指导这该如何解决?还有,已有的jsp程序,想要功能不变但是把图片换掉,使它看起来像是一个新的网站,该怎么换图片?急求大神!!感激不尽~ 解决方案 上面一张图片看不到. 改图片就是改img标签里的src部分.请参考:http://www.w3school.com.cn/tags/tag_img.asp 解决方案二: 估计连接数据库出了问题,你看看to

【JSP 随笔之一】JSP常用语法和使用总括&&JSP服务器端和客户端代码互相调用

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/java-servlet/858.html 对于Servlet 学习过后,那么接触到JSP,那么可以发现JSP编程则会突然喜爱上,因为JSP不仅仅也是一个servlet,还能帮我们直接从servlet的容器(Tomcat)为我们直接生成对应的servlet代码.至于更加详细的介绍大家可以自行baidu-goole 下面让我们首先写一个JSP,

字符串处理-求大神帮解决如下程序,最基本的C语言字符串类型,不用编太难(如下为问题要求,测试用例,输出用例)

问题描述 求大神帮解决如下程序,最基本的C语言字符串类型,不用编太难(如下为问题要求,测试用例,输出用例) Background Given an m by n grid of letters and a list of words, find the location in the grid at which the word can be found. A word matches a straight, uninterrupted line of letters in the grid.

编程技术:编写线程安全的JSP程序

js|安全|编程|程序 JSP默认是以多线程方式执行的,这是JSP与ASP,PHP,PERL等脚本语言不一样的地方,也是它的优势之一,但如果不注意多线程中的同步问题,会使所写的JSP程序有难以发现的错误.下面以一个例子说明JSP中的多线程问题及解决方法. 一.JSP的中存在的多线程问题: 当客户端第一次请求某一个JSP文件时,服务端把该JSP编译成一个CLASS文件,并创建一个该类的实例,然后创建一个线程处理CLIENT端的请求.如果有多个客户端同时请求该JSP文件,则服务端会创建多个线程.每个

修改MYSQL数据库,数据表,字段的编码(解决JSP乱码)

js|mysql|编码|解决|数据|数据库 要解决JSP乱码,首先就要了解JSP乱码的原因 1.架设服务器安装MYSQL时的会让你选择一种编码,如果这种编码与你的网页不一致,可能就会造成JSP页面乱码2.在PHPMYADMIN或mysql-front等系统 创建数据库时会让你选择一种编码,如果这种编码与你的网页不一致,也有可能造成JSP页面乱码3.创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成JSP页面乱码4.创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码

编写线程安全的JSP程序

js|安全|程序 JSP默认是以多线程方式执行的,这是JSP与ASP,PHP,PERL等脚本语言不一样的地方,也是它的优势之一,但如果不注意多线程中的同步问题,会使所写的JSP程序有难以发现的错误.下面以一个例子说明JSP中的多线程问题及解决方法. 一.JSP的中存在的多线程问题: 当客户端第一次请求某一个JSP文件时,服务端把该JSP编译成一个CLASS文件,并创建一个该类的实例,然后创建一个线程处理CLIENT端的请求.如果有多个客户端同时请求该JSP文件,则服务端会创建多个线程.每个客户端

解决应用程序正常初始化(0xc0000135)失败

今天计算机G了一个XPSP3,但是在安装程序的时候出现应用程序正常初始化(0xc0000135)失败,百度了一下发现了问题所在. 应用程序正常初始化(0xc0000135)失败解决方法 这是由于没有安装.NET framework 所造成的,请安装.NET framework.下载地址:微软官方地址:http://download.microsoft.com/download/3/F/0 /3F0A922C-F239-4B9B-9CB0-DF53621C57D9/dotnetfx3.exe 华军

简单的方法解决网站程序漏洞被挂马的问题

相信大多站长都有网站被挂马(被挂病毒)的经历,特别是同中国互联网一起发展的这批老资格站长,随着网络普及的越深入,黑客技术越进步,就越暴露出以往程序的漏洞.现在的新站长就幸福多了,目前流行的网站程序都已经成熟,比如shopex.动易.http://www.aliyun.com/zixun/aggregation/11656.html">discuz,都是非常优秀的程序.大家只要及时升级及时更新补丁就没大问题了. 但是陆续还是有客户来反映网站打开报病毒,我会对其耐心的讲解原因以及告之处理方法,