龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

新一代 WEB 用户界面构建框架实例剖析

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
当今的信息治理软件在逐渐的向WEB上发展,但WEB中致命的缺陷就是很难构建理想的用户操作界面,即使用SCRIPT写好一些控件也很难重用,更不用说是采用面向对象的设计方法来设计,这

  当今的信息治理软件在逐渐的向WEB上发展,但WEB中致命的缺陷就是很难构建理想的用户操作界面,即使用SCRIPT写好一些控件也很难重用,更不用说是采用面向对象的设计方法来设计,这就增加了大型系统的开发与维护的难度,所以现在的软件公司还是采用C/S模式进行开发,这样用户的操作界面就可以采用第三方控件生成,这样节省了开发周期,同样难度较小,大部分的时间就用在了需求分析与业务建模中,而且后期维护也很轻易,因为代码量越小,出错的机会就越少。
  但是新的技术终就会代替旧的技术,这就需要有人敢闯敢干,不怕失败,努力进取。随着WEB框架的不断更新,WEB开发也在不断的完善,STRUTS,JSF等等优秀的框架得到很多Java爱好的者的认可,但是在这些框架中还是没有根本的解决用户的操作界面,STRUTS还是采用TAGLIB的方式来实现基本的控件(也有一些扩展控件),这样一来用户界面的开发只能是一些Html标记加上一些扩展标记来实现,增加开发的复杂度,以前是在jsp中加入JAVA代码,现在加入扩展标记,基本上没有多大进步。
  以上是对WEB开发中的不足简单的介绍了一下,这只是我个人的见解,下面来介绍一下我开发的WEBFORM技术,类结构如图
  WEBFORM主要采用JDOM来构建HTML标记树,先通过HTMLObject类来构建一般的HTML对象,然后对GenericExtendObject来构建扩展对象,主要是一些常用的控件,例如菜单,工具条,树等一等比例控件,扩展控件中的HTML基本对象的属性通过PropertiesAdder类来加载webform-infomatio.XML文件来添加,然后在Struts中的Action中调用UIBuilder的实现类来生成用户界面,再通过response.getWriter()输出HTML标记,假如用户的界面比较复杂或者担心速度太慢也可以采用扩展标记,只要通过pageContext.getOut()输出标记就可以实现,组合好这些基本的HTML标记后,还会引用到一些javascript,Css,这些会根据控件所涉及的JS,CSS来自动添加,下面是两个例子的代码。
  
  //Struts的Action中
  public class ResourceAction extends DispatchAction{
    public ActionForward open(
  
   ActionMapping mapping,
  
   ActionForm form,
  
   HttpServletRequest request,
  
   HttpServletResponse response)
  
   throws Exception {
  
   Window window = new Window();
  
   Lable lable = new Lable();
  
   lable.addText("Hello World");
  
   window.addChildren(lable);
  
   window.printHTMLTag(response.getWriter());
  
   return mapping;
  
   }
  
  }
  客户端输出为:
  ?
  ?
  ??? Hello World
  ?
  ?
  这种方式不同与ECHO项目,ECHO大量的采用了Session,Cookie这样服务器的性能会下降,但是JWF则没有采用,它只是组合HTML标记,其它的则完全由JS,CSS来完成,在开发JWF组件的时候,首先要用JS实现,然后尽量的简化HTML标记,最后通过封装成JAVA类,这样完全可以实现重用。
  
精彩图集

赞助商链接