Spring MVC vs JSF

我已经在我以前的所有应用程序和新应用程序中使用了Struts框架,我的客户请求使用Spring MVC或JSF? 我不熟悉这两个框架,但我们的时间表是严格的。 所以,我不确定我会select构build应用程序的框架。

任何人都可以请build议我哪个框架将很容易在快速学习?

谢谢

当然,每个人都会有所不同,但我build议Spring MVC,因为它是一个基于请求的框架,比如Struts。 当然,你会想学习核心Spring的东西,如控制/dependency injection反转(但是我认为这是一个加号…)以及你将要用于数据库访问的东西(只是JDBC?Hibernate? iBatis?等)。

JSF是基于组件的,与基于请求的框架有点不同。 如果你打算去JSF路线,我build议从JBoss看Seam。 它更像是一个使用JSF作为web / presentation结尾,EJB作为后端的前后台框架。 几乎所有使用它的人声称,它使得JSF和EJB比它们自己更有用。

祝你好运,不pipe你select哪种技术。 (听起来你需要它 – 严格的时间表和一个处理Web框架的客户端?)

我build议SpringMVC,因为时间表:

  • 你需要一些不太陡的学习曲线。 SpringMVC比Struts更像JSF
  • 为了使用JSF的力量,你需要熟悉许多“技巧”,而SpringMVC或多或less是直截了当的

我会build议JSF + Primefaces组件库。 我正在使用这个组合来构build我们大部分的项目。 据我记忆,我花了一个星期的时间来学习这项技术,并在一个月内完成了我的第一个项目。 开发时间比Struts至less快30%。

SpringMVC不是一个坏的技术,它是相当受欢迎的。

真的取决于你最喜欢哪一个。

当然,你会想学习核心Spring的东西,如控制反转/dependency injection(但我认为这是一个加…)

JSF确实基于IoC,比Spring的学习曲线简单得多。

JSF只是MVC的视图层,需要与Spring / Hibernate或EJB等其他技术一起用于完整的MVC。

我一直在使用Spring MVC大约1个月,虽然它可能不是SpringMVC最简单的版本我发现有一点烦人,我们有这么多的XML来处理。 所有的托pipe的bean和DAO都有XMLconfiguration。 还有一切似乎都必须通过一个名为onSubmit()的方法。

在我看来,JSF和EJB一样简单得多…所有的事情都可以使用Annotations完成,所以只需在你的支持bean中使用@ ManagedBean = theBean,在你的JSF中使用{thebean.param},你就可以访问backing bean的数据。 另外,您可以使用EJB的Session Bean作为JSF的支持bean,然后直接访问DAO(Model层)实体Bean。 再次简单地通过使用@Entity批注和EntityManager类

Spring MVC是Spring框架内的一个Web框架。 它确实提供了JSF 2.0中的特性:ajax支持validationdependency injection等等。但是,您可以使用Spring(而不是Spring MVC)和JSF 2.0,Spring提供dependency injection,aop,事务pipe理机制和JSF提供网页层。