解决jsp程序不直接、代码与UI混杂的痛: JSPWidget
介绍一个非常不错的基于java、web的UI解决方案,用java做web应用的人都知道,web上UI开发的痛苦吧,UI表现上几乎没有什么现成的控件,这一点.net的确是比java要强一点,即使struts也没有提供很好的解决jsp(SUN企业级应用的首选)Widget是一个台湾的开源的UI框架,它仿照.net的viewstate等思想,提供了事件驱动、页面状态保存(viewstate)、校验、以及常用组件(dropdownList、panel、treeView、menu)等解决方案。并且提供详细的文档和demo。其实在一年前就看到过这个项目了,今天偶尔又看到推荐给大家,希望可以学习、参考、借鉴他的思想。
项目地址:http://edu.uuu.com.tw/jsp(SUN企业级应用的首选)widget
看一下他的Menu组件效果很cool吧:http://edu.uuu.com.tw/jsp(SUN企业级应用的首选)widget/docs/gui/menu_03.jsp(SUN企业级应用的首选)
下面是作者对webUI的一段分析:
设计目标
然而,单单用 jsp(SUN企业级应用的首选) 来开发 Web 专案並不容易,因为 jsp(SUN企业级应用的首选) 是非事件驱动程式撰写模式 ( Non Event-Driven Computing Model)、 UI (HTML Elements) 无法由程式码直接控制、以及 UI 的状态(View State)无法自动保存, 这些因素造成了jsp(SUN企业级应用的首选)的程式码与 UI 混合在一起,错综複杂的 UI/程式码不仅在开发上不容易,也造成日後维护与扩充上的困难。
相较於传统的 Client Forms 或 Client-based Web Applications 程式撰写模式而言, jsp(SUN企业级应用的首选)显然不直觉多了。原因有三,兹並列比较如下:
因素 | Client Forms | 纯 jsp(SUN企业级应用的首选) |
Event-Driven Computing Model | 你可以藉由撰写事件处理函式 (Event Handler) 来处理由 GUI components所触发的事件。 例如 Button 的 OnClick 事件或 DropdownList 的 OnSelectChanged 事件。 | 因为jsp(SUN企业级应用的首选)是由上到下循序处理 (Sequential Processing),因此你必须用程式来判断到底使用者按了哪个按钮, 使用者是否改变选定的选单项目等等,然後根据这些判断结果来撰写对应的程式码。 |
GUI Compoment | 所有 GUI Compoment 的属性与行为都可以由程式码完全存取与控制, 程式码与 UI是完全分开的。 | 因为jsp(SUN企业级应用的首选)是由上到下循序处理 (Sequential Processing),因此你必须在适当的jsp(SUN企业级应用的首选)档案位置插入程式码, 以改变 output 至浏览器的 UI。但这样撰写方式往往造成程式码与 UI 混杂在一起,非常难维护与扩充。 |