0

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

4

1 回答 1

0

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

如果您的对象在使用列表时正在做任何事情,那么它将在您的第一个请求中正常工作。即使你已经采取了预防措施,说加载一些东西f:event也不会让你免于以下 AJAX 请求。

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

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

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

于 2013-07-26T14:03:21.777 回答