从02年用struts,到后来的JSF(04开始关注,不过当时sun的实现很不稳定,虫儿太多,所以浅尝辄止了),到现在用spring MVC,到最近开始关注的wicket,java社区的web框架真是太多了,但是折腾来折腾去工作量/复杂程度一直没有改观...struts/springMVC...大同小异,基本都在servlet规范上做了一些mapping配置,MVC分责的工作,你的头脑里一直是MVC/请求页面/处理request/生成reponse这张图,再加上AJAX javascipt/CSS/html,实话说写出一个应用出来真的不容易...有时真觉的拿着本来用看看新闻的B/S来构建企业应用真是变态的事情。
欣赏swing式基于event构建UI的方式,很自然,所以一直在寻找web层类似的方案,出现JSF的时候,觉得有些靠谱了,JSF定义了很完善的生命周期模型,基于event的编程方式,丰富的组件...不过真够复杂,因为还是走页面刷新,所以你得将JSF的生命周期搞的很明白,就是说JSF给人的感觉是辆奔驰,但是内部用的却还是拖拉机的零件,你不搞明白内部的机理,碰到哪儿漏油的问题要分析起来估计只有傻眼的份。而且去年项目中有用SEAM(WEB层基于richfaces)构建系统失败了,原因是JSF这块大并发时性能上过不去...据负责这个项目的同事的同事说是因为server端的组件粒度太细太多,并发上来后render起来很慢,与jboss邮件来邮件去还是没有解决问题,所以最终放弃,顺便表达一下,将AJAX揉到页面刷新的框架中真是让人倒胃口的想法...
下面开始折腾GWT,这玩意看起来挺好,结合EXT-GWT,开箱即用的组件真是玲琅满目,我都看的流口水了,真的够炫烂的,不过用下俩缺点非常明显,不自然,在写java代码的时候,你头脑里得一直记着这些代码是要转成javascript在浏览器端执行的,所以要访问server端的对象得套一层壳,很别扭,所以GWT只是解决了编程语言的问题(不喜欢的javascript可以换java来写)。而且编译起来真的要吐血了,小项目5分钟是起步,大项目估计要去外面逛一圈回来,这些还可以忍受,导致最终失败的原因是浏览器第一次的加载时间,简直是出人命,15s往上跑...如果页面刷新一下就得等15s,最终还是放弃...
我要找的web层方案,希望满足几个特点,一是有组件/event模型,二是少/最好不要写javascript,三是view的构建是OO方式的,第三点我解释一下,大部分的web框架在view这块都是基于template的,如JSP,JSF现在用facelet,都是大同小异,稍微带些基于模板的局部替换/删减功能来完成模板内容(文字)级的重用,这个在做一些大型项目时很要命,我希望view是基于组件的,是可以基于OO通过API可操控的,这样可以非常便捷的重用。
要睡觉了,未完待续...