作为一名多年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的项目,我希望大家能够对这个技术感兴趣,并希望得到你们的反馈,帮助我或者和我一起更好的完善这个框架。