在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或刷新页面,或关闭浏览器窗口,使其再次更有用:)
上一篇: Using OmniFaces 2.1 ViewScoped with Spring 3.1.0 in JSF 2.2
下一篇: Spring MVC @Sessionattributes issue in multiple browser tabs