Using JSF as view technology of Spring MVC
我目前正在实现一个小型Spring MVC PoC,并且我想使用JSF作为视图技术,因为我公司中的大多数人都习惯于带有Primefaces环境的J2EE。
Spring MVC 3是否支持JSF或仅支持JSP? 我读过多篇文章,将两者结合在一起。
我需要创建一个吸引人的UI。 使用Spring MVC和JSP作为视图技术,是否有一种简单的方法?
我们的应用程序在多个页面中使用时间表/日历。 这基本上是一个时间管理APP
您正在犯一个概念上的错误。 JSF不是视图技术。 JSF是一个MVC框架。就像Spring MVC一样,尽管两者都有不同的意识形态。 JSF是基于组件的MVC,而Spring MVC是基于请求的MVC。因此,他们是完全的竞争对手。您不能混合它们。您应该选择一个。相反,JSP和Facelets是真正的视图技术。从Java EE 6(2009年12月)开始,JSP被弃用,并由Facelets(XHTML)替代,作为JSF的默认视图技术。
好。
您可以将Spring MVC与JSP视图技术一起使用。您还可以将Spring MVC与Facelets视图技术一起使用(以及许多其他功能)。但是您不能将Spring MVC与JSF组件一起使用,更不能与诸如PrimeFaces之类的JSF组件库一起使用。 JSF输出组件可能起作用,但是JSF输入组件根本不起作用。 Spring MVC已经有自己的
好。
另一方面,将Spring IoC / DI与Spring MVC混淆也可能很好。 Spring IoC / DI可以与JSF一起使用。您可以用Spring托管Bean设施(
好。
同样的情况适用于Spring Security。您可以将它与JSF一起使用,但是,为了配置它,您不应该遵循Spring Security + Spring MVC目标的文档/示例来进行配置,而只能遵循Spring Security + JSF的文档/示例。请注意,仅当您用Spring托管Bean设施替换JSF托管Bean设施时,Spring Security对业务操作的约束才起作用。因此,仍然需要如上一段所述的"在JSF中集成Spring"。与此等效的标准Java EE将通过
好。
同样的故事也适用于Spring WebFlow。您还只需要确保使用的是Spring WebFlow的最新版本,因为较早的版本与多个JSF组件库一起使用时会引起冲突。而且,自JSF 2.2起,新的Faces Flows功能作为标准Java EE API的一部分被引入,从而基本上使Spring WebFlow成为多余。
好。
然后是Spring Boot。在Java EE中没有直接等效项。 Spring Boot基本上使您能够使用带有
好。
返回JSF和Spring MVC,如果确实需要,您可以在同一Web应用程序中安全地彼此相邻运行Spring MVC和JSF,但是它们不会在服务器端互操作。它们将完全独立运行。如果JSF生成的HTML页面中的某些JavaScript恰巧在同一Web应用程序中调用基于Spring的REST Web服务调用,则它们最多将在客户端彼此接触。但是,该Spring Web服务于是不需要/不必了解有关JSF的任何信息即可做出相应的响应。 Spring REST Web服务的等效标准Java EE是JAX-RS。
好。
即将面世的Java EE 8将基于JSF和Spring MVC的经验教训,提供一个基于请求的新MVC框架,命名为" MVC",从而取代Spring MVC并提供JSF的标准替代方案。
好。
也可以看看:
好。
好。
Spring MVC和JSF并没有真正融合在一起。 您可以使用JSF来查看与视图相关的内容,并让Spring管理和连接支持的(服务,Dao等)。 但是,尝试将@Controllers与JSF页面进行匹配并不是一件好事(此外,这两者都是基于组件的不同堆栈请求)。
要将Spring与JSF集成,您需要将
Spring Webflow可以为您提供帮助。 查看这个样本项目。
https://github.com/spring-projects/spring-webflow-samples/tree/master/primefaces-showcase