我新近开了一个Opensource的AJAX框架,http://easyajax.sourceforge.net作为一名多年Java/WEB开发的老程序员,我对JSP/JSF/Tapestry/Echo等多个框架都有所了解和使用经验,越发感觉到 ajax 应该是WEB的前景所在, easyajax 试图在以下领域提供对WEB开发的简化:* 严格区分html用户界面和服务处理代码。
  说实在的,JSP/JSF/Tapestry/Echo 等众多框架始终在 用户界面和逻辑处理这两者间没有划出一条清晰的界限。easyajax则倡导:用户界面全部使用dhtml来开发,并可以让WEB工程师(对Javascript、XML有一定要求)独立的完成。
  J2EE技术,应该完全关注于应用逻辑的处理,表现出来,就是只有一些可调用的方法,传递数据,而不是html或者其他非结构化的东西。
  easyajax 整个框架都是围绕这个目标来建设的。* 提供数据绑定功能。
  在 HTML 中,可以直接使用 #{javascript-expression} 来引用值,当表达式的值发生变化时,用户界面会相应更新。 无需编写javascript就可以实现变化的WEB用户界面,使得 html 可以非常的简洁。* 提供ajax组件支持。
  一个简单的例子,只需要在标记中设置 jsclass="true" 属性,那么这个标记就拥有了ajax能力,比如说,你可以设置一个 visible 的属性, 例如 visible="#{showMe}", 那么,当showMe为true时,这个标记中的内容是可见的,否则,会隐藏其内容。
  更多的组件提供一些复杂的功能,比如说 ajax.DataIteration 组件,会对一个数组自动重复当前的标记中的内容,这个可以参考 easyajax 中带的例子。* 提供 remote call 的能力。
  现在有很多的ajax框架提供rpc的能力,即在javascript中可以直接调用服务器上的方法,easyajax也提供这样的一个能力。不过,easyajax支持传递复杂的对象,而不仅仅局限于string/int/boolean等简单类型,任何可以表述为 XML 的对象,都可以传递。
  easyajax 目前将提供对java端的绑定,基本上在服务器端编写一个普通的POJO,使用Java5的annotation进行简单的签注,这个方法就可以在javascript中调用了,无需进行复杂的配置。接下来的版本将考虑直接在javascript中调用WebService的支持。* XML/Javascript映射。
  easyajax 倡导使用XML来定义和表述数据,但是,使用DOM来访问 XML 或许是一个很不友好的技术,easyajax 通过XML/Javascript映射大大简化了这个问题,你可以直接使用 order.address 这样的语法直接访问XML中的内容。也可以把一个javascript对象直接作为XML传递给服务器。作为一个opensource的项目,我希望大家能够对这个技术感兴趣,并希望得到你们的反馈,帮助我或者和我一起更好的完善这个框架。

解决方案 »

  1.   

    数据绑定、组件框架、XML/JS映射已经基本OK。
    rpc 这一块预计这个周末可以发布。目前,还没有提供一个下载安装的东西,和文档等。只是提供了在线的一些例子。
      

  2.   

    继续开发是肯定的。能否给到意见建议阿?目前,easyajax 还只有一些DEMO的页面而已,离一个实际应用的框架还有较大的距离,包括框架本身、丰富组件集等。
      

  3.   

    我顶!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!中国IT人才网(    http://www.itbbs.net.cn    )!
    免费招聘、求职。IT人工作的天堂。希望能够为大家所用。
      

  4.   

    我并不是一个很老到的javascript/ajax技术人员,如果大家觉得有什么在别的框架中很好的特性,适合于整合到easyajax中去的,欢迎给我建议。DWR(Direct Web Remoting)的框架我简单的看过一下,easyajax 也提供 RPC 的功能,同DWR相比,easyajax 的RPC 有一些特点:* easyajax 基于 XML/Javascript 映射的机制,因此,可以传递的数据结构可以很复杂,例如,可以有 orders/order/product 等多层的关系,数据表述能力相对DWR 更强一些。* 目前,easyajax 在服务器端使用了 JAXB2 技术,只要你的参数/返回值 按照JAXB2 规范开发的话,再将提供方法的类在一个XML中注册一下,就可以了。 如果你不支持JDK1.5,暂时就无法使用 easyajax 的 RPC 功能。* EasyAJAX 提供的数据绑定功能非常强,RPC取回了返回数据后,只需要简单得刷新一下当前页面,就可以实现页面与数据的同步,而无需逐个逐个的刷新。包括可以自动的隐藏区域等。当然这个功能跟RPC关系不大。