【问题标题】:Should JSF process non rendered components on Ajax re-rendering?JSF 是否应该在 Ajax 重新渲染时处理未渲染的组件?
【发布时间】:2013-07-12 07:52:21
【问题描述】:

我的页面具有 Ajax 显示/隐藏功能。 在初始页面加载期间,未调用 <f:subview><h:panelGroup> 内部的 bean 方法。当使用 Ajax 重新渲染 @form 时,虽然没有渲染相关的子视图,但我的 bean 方法被调用。这是应该发生的事情吗? (我使用的是 JSF 2.2)

【问题讨论】:

标签: jsf


【解决方案1】:

根据我上面的评论,这是预期的行为。不幸的是,它带有一些丑陋的行为。

如果您的对象在使用列表时正在做任何事情,那么它会在您的第一个请求时正常工作。即使您已采取预防措施,例如通过使用f:event 加载某些内容,这也不会为您节省以下 AJAX 请求。

示例: 如果您将 JPA 与为请求范围管理的每个 bean 一起使用,并且该 bean 具有未呈现的惰性集合,这将导致以下情况:

请求 1:不会触及未渲染的组件,即不会初始化惰性集合

请求 2(Ajax):JSF 将尝试恢复调用您未加载的惰性集合的完整视图,从而导致异常。

【讨论】:

    猜你喜欢
    • 2011-02-06
    • 1970-01-01
    • 2018-10-07
    • 2013-11-01
    • 2013-08-16
    • 2022-01-06
    • 2019-06-01
    • 2011-12-12
    • 2018-08-12
    相关资源
    最近更新 更多