在JSF 2.2中使用OmniFaces 2.1 ViewScoped和Spring 3.1.0

我试图将一些页面转换为View范围(来自Session Scope),以使多个浏览器标签能够支持从数据表中的多个条目显示数据。

有谁知道是否按照本PrimeFaces博客移植JSF 2.0的ViewScope到Spring 3.0的步骤将努力扩展Spring使用org.omnifaces.cdi.ViewScoped从Omnifaces 2.1?


您可以使用您找到的博客中描述的方法。 只有你不能,也不能以这种方式正确移植,它实际上使用特定的@ViewScoped注释。 基本上,您应该实现与封面中使用的注释相同的代码。

标准JSF @ViewScoped和OmniFaces @ViewScoped在封面下做的基本上与博客中描述的一样:通过UIViewRoot#getViewMap()引用bean实例。 只有在所有情况下,JSF 2.0 / 2.1 @ViewScoped没有正确触发bean的@PreDestroy 。 例如,当底层HTTP会话过期时,它们不会被调用。 OmniFaces为JSF 2.0 / 2.1用户解决了这些问题。 JSF本身已经在2.2中解决了它们。 所以在JSF 2.2中,使用OmniFaces @ViewScoped并没有真正的理由。

虽然我想在这里暗示我为未来的OmniFaces 2.2计划在使用OmniFaces @ViewScoped bean时添加一个beforeunload挂钩到<o:form> ,以便当用户导航离开时bean也真的被销毁通过GET或刷新页面,或关闭浏览器窗口,使其再次更有用:)

链接地址: http://www.djcxy.com/p/58691.html

上一篇: Using OmniFaces 2.1 ViewScoped with Spring 3.1.0 in JSF 2.2

下一篇: Spring MVC @Sessionattributes issue in multiple browser tabs