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

标签 spring jsf jsf-2.2 omnifaces jboss-weld

我正在尝试将一些页面转换为 View 范围(从 session 范围),以使多个浏览器选项卡支持显示数据表中多个条目的数据。

有谁知道是否按照 PrimeFaces 博客 Porting JSF 2.0′s ViewScope to 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没有正确触发@PreDestroy在所有情况下都是 bean 。例如。当底层 HTTP session 过期时,它们不会被调用。 OmniFaces 已经为 JSF 2.0/2.1 用户解决了这些问题。 JSF 本身已经在 2.2 中解决了这些问题。因此,在 JSF 2.2 中,没有真正理由使用 OmniFaces @ViewScoped

尽管我想在这里暗示我对于 future 的 OmniFaces 2.2 计划添加 beforeunload Hook <o:form>当 OmniFaces @ViewScoped使用 bean,这样当用户通过 GET 导航离开、刷新页面或关闭浏览器窗口时,bean 也会真正被销毁,从而使其再次变得更加有用:)

关于spring - 在 JSF 2.2 中使用 OmniFaces 2.1 ViewScoped 和 Spring 3.1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32019344/

相关文章:

spring - Thymeleaf 3 和 Tiles2 集成

java - Servlet 不应该有可变的实例字段误报 Spring Autowiring (squid :S2226)

java - 如何处理路径变量中的特殊字符

jsf - 在 p :confirmDialog 上显示格式化的文本/消息

java - JSF : How put onfocus, 输入字段中的模糊效果?

file-upload - Glassfish 4,JSF 2.2和PrimeFaces FileUploadEvent不能一起使用

java - 如何从 JAX-WS Web 服务中访问 ApplicationContext?

java - 该项目不适用于 servlet 4.0 和 jsf 2.3

html - 带有 JSF 传递的单选按钮?

jsf - OmniFaces 是否与 JSF 2.2 兼容?