jbob兄的几句话说得很好:
当jdbc写sql麻烦的时候,hibernate等orm工具出现了。
当ejb复杂,繁琐的时候,spring等等又出来了。
当jsp/servlet依然很繁琐的时候,struts,webwork等等MVC结构的引入,freemarker,velocity等等页面膜版语言出现了。然后便是tapestry,jsf等等.
随着框架的引入,带来最多的便是配置,大量的XML被引入到工程项目中。
于是java anototion不失时机地出来了,大家可以直接在java类里面进性配置。
工具,框架在发展,java人的关注点很多。几千个妖精在打架,大家学都学不完。
曾用过JSF,目前来说仍然是基于jsp(虽然宣称可以有其他的实现),大量的标签(我比较烦标签,标签的引入压根就是引增加复杂性),然后是比较烦琐的xml配置,像我这种懒人,觉得这样的开发就是不太爽。
Tapestry没有仔细深究,只是感觉代码限制性较多,束缚手脚,不知道最新的版本什么效果。
还是比较喜欢wicket的开发方式,虽然不太成熟且也有一定应用范围的限制。
(不断补充.....)