我相当广泛地使用了Tapestry 3,Wicket,Echo和JSF。我真的建议你看看这些,并选择一个对你来说最容易的,并且最接近你喜欢的工作方式。
其中,对我来说最舒服的是Wicket,因为组件构建的轻量级和页面模板的简单性。如果你使用自己的数据库代码而不是Hibernate或其他框架(我从来没有对Wicket Hibernate或Spring Integration完全满意)。这加倍。
如果你不介意用Java编写所有布局,Echo是很棒的。我知道现在不一样了,但我仍然认为该产品服务于一个相当狭窄的利基市场。他们似乎也改变了每个主要版本的开发模式。
Tapestry是一个伟大的产品,但它在开发模式方面显然与其他产品非常不同,因为它主要由一个家伙领导。霍华德·刘易斯·希普(Howard Lewis Ship)无疑是非常聪明的,但我对他们决定基本上忘记与每个版本的向后兼容性感到失望。不过,对于您的需求来说,这可能并不重要,而且我一直认为Tapestry产品令人愉快。
JSF已经推出多年了,仍然感觉像是一个Struts家伙为解决Struts的所有问题而构建的东西。没有真正理解Struts的所有问题。它仍然有一种未完成的感觉,尽管产品显然非常灵活。我使用它,对它有一些喜爱,对它的未来抱有很大的希望。我认为在JEE6中交付的下一个版本(2.0)将真正将其带入自己的位置,具有新的模板语法(类似于Facelets)和简化的组件模型(仅在1个文件中自定义组件...最后)。
当然,还有一百万个较小的框架和工具可以获得自己的追随者(满足基本需求的速度,原始JSP,Struts等)。不过,我自己通常更喜欢面向组件的框架。
最后,我建议你看看Tapestry,Wicket和JSF,然后选择一个最适合你的。你可能会很快找到一个适合你喜欢的工作方式。