我的一些jsf组件认识
jsf的资料大多是英文的,jsf组件一大堆,选择是痛苦的,我想把我的一些看法写出来,有不正确的地方还请指明。
==========关于ajax
主要有a4j,icefaces,Jsf-Extentsions。
Jsf-Extentsions,sun提供的ajax页面级支持,配置简单,非常像ajax4jsf,与jsf生命周期结合良好,功能强大。
最重要的是,Jsf-Extentsions暴露了提供javascript-jsf桥接的js函数接口(其实a4j也有),为未来ajax与jsf融合预留了余地(本文观点)。但目前只能在glassfish上使用
请参考https://jsf-extensions.dev.java.net/nonav/mvn/gettingstarted-ajax.html
或者http://www.webjx.com/htmldata/2006-12-20/1166580877.html(中文)
a4j提供页面级别的ajax支持,也就是说可以容易的为非a4j的其他组件提供ajax支持。
唯一不爽的是捆绑richfaces(犯贱)
icefaces是基于组件的,也就是说只能为icefaces组件提供ajax支持。
icefaces的推技术和a4j的拉我不敢妄加议论(a4j属于长连接拉技术),请高手补充。a4j有一个标签a4j:push提供类似推技术(其实还是拉),但原理与icefaces似乎不同。
icefaces提供增量地页面部分更新,推技术交互过程(发起ajax请求到页面部分更新)非常快,但整体页面渲染较a4j慢(个人感受,在自己的老爷机上测试,换成强劲的机器差别可能没这么大,感觉icefaces是重量级的),如果不是开发正儿八经的应用,只是开发网站的话,不推荐那。对这个框架感觉有点怪,说是针对企业开发的,又华丽花俏得过度,说它不是,又那么牛比(真的牛比),一把镶满了黄金珠玉的杀人之刀。
a4j和icefaces都是实现在jsf生命周期外包了一层处理过程,这与Jsf-Extentsions原生支持不同。
==========组件丰富性
richfaces我感觉似乎略逊于icefaces,我需要的一个html编辑器组件richfaces未提供。
tomahawk很不错,精简够用,兼容性及其它组件支持都很好,比较适合web开发。WoodStock似乎也不错。这方面的选择很多,区别不大。
===========验证
tomahawk验证比较不错,其它类似的也很多,比如Trinidad也提供验证。
shale-validator,是我目前找到的唯一的client/server统一验证框架,简单易用,易与别的框架集成。
当然,如果你使用seam,hibernate的基于注解的验证非常的不错,它把验证绑定到了实体模型。这比之页面验证的分散和重复更简洁利落。
不用seam的话,基于注解的验证目前没有好的实现,myfaces的sev-en似乎还没有正式版本
可以参考http://people.apache.org/~gpetracek/sev-en_docu/
============模板
当然首推facelets,xml结构的页面代码,喜欢xml的人看着舒服。模版技术和封装技术非常不错
============中间层
seam,简单,功能强大,简直是极品,ejb3挺不错,使用pojos可以在tomcat上直接部署。
http://xo-tobacoo.iteye.com/blog/208098