Jsf 在我离开页面后,再次构建托管bean

Jsf 在我离开页面后,再次构建托管bean,jsf,richfaces,Jsf,Richfaces,我在托管bean方面遇到了一个奇怪的问题。有时,当我从一个页面导航到另一个页面时,在加载第二个页面后,会再次构建第一个页面的bean(此时甚至会在浏览器中呈现)。我无法理解为什么会发生这种情况,因为第二页中没有任何对第一个bean的引用。这两个页面都可以从菜单中访问,但也可以从另一个页面加载导航案例。 当我先加载第二个页面,然后通过菜单转到第一个页面,然后调用firstBean将我转发到第二个页面的操作时,总是会出现此错误。但它有时也会出现在第一页先加载的情况下 也许在一些示意图中会更清楚 fi

我在托管bean方面遇到了一个奇怪的问题。有时,当我从一个页面导航到另一个页面时,在加载第二个页面后,会再次构建第一个页面的bean(此时甚至会在浏览器中呈现)。我无法理解为什么会发生这种情况,因为第二页中没有任何对第一个bean的引用。这两个页面都可以从菜单中访问,但也可以从另一个页面加载导航案例。
当我先加载第二个页面,然后通过菜单转到第一个页面,然后调用firstBean将我转发到第二个页面的操作时,总是会出现此错误。但它有时也会出现在第一页先加载的情况下

也许在一些示意图中会更清楚

firstBean=firsPage
secondBean=secondPage

在这种情况下:
菜单->第二页->菜单->第一页->第二页
--firstBean总是在加载secondPage之后构建

但在另一种情况下:
菜单->第一页->第二页
--firstBean有时是在加载secondPage之后构造的,有时不是(我想只有在我第一次这样做时才会发生:)

再次声明:secondPage或secondBean中没有对firstBean的引用

那么,为什么在加载secondPage之后构建firstBean呢


更新
忘了提到:firstBean不仅构造(这不是问题),而且还读取
的数据!真奇怪!为什么它读取未呈现的表的数据?它根本不存在于第二页上


更新2
我将
ajaxOnly=“true”
一起使用


更新3

下面是包括阶段的方法调用打印。
我在“网络”页面,按下“事件类型”菜单项:
开始阶段还原\u视图1
结束阶段还原\u视图1
开始阶段应用\u请求\u值2
类ui.network.MbNetworks getFilter:net。Network@ae8a2c
MbNetworks:已建成2011-03-16 18:13:23860
类ui.network.MbNetworks getTabName:detailsTab
菜单处理选择:按下菜单
结束阶段应用\u请求\u值2
启动阶段流程\u验证3
结束阶段流程\u验证3
开始阶段更新\u模型\u值4
结束阶段更新\u模型\u值4
启动阶段调用应用程序5
结束阶段调用应用程序5
开始阶段渲染_响应6
MbEventTypes:构造2011-03-16 18:13:23969
类ui.common.events.MbEventTypes getEventTypesItems:[javax.faces.model。SelectItem@197889e,…]
类ui.common.events.MbEventTypes getFilter:common.events。EventType@bab853
类ui.common.events.MbEventTypes getEntityTypes:[javax.faces.model。SelectItem@9b80b4,…]
类ui.common.events.MbEventTypes getFilter:common.events。EventType@bab853
类ui.common.events.MbEventTypes访问$0:数据大小
类ui.common.events.MbEventTypes getRowsNum:20
类ui.common.events.MbEventTypes访问$0:数据
类ui.common.events.MbEventTypes getItemSelection:null
类ui.common.events.MbEventTypes getRowsNum:20
类ui.common.events.MbEventTypes getRowsNum:20
类ui.common.events.MbEventTypes getRowsNum:20
类ui.common.events.MbEventTypes getActiveEventType:null
类ui.common.events.MbEventTypes getActiveEventType:null
类ui.common.events.MbEventTypes getEventTypesItems:[javax.faces.model。SelectItem@1dfab16,…]
类ui.common.events.MbEventTypes getNewEventType:common.events。EventType@1f84cb0
类ui.common.events.MbEventTypes getEntityTypes:[javax.faces.model。SelectItem@154953,…]
类ui.common.events.MbEventTypes getNewEventType:common.events。EventType@1f84cb0
类ui.common.events.MbEventTypes getRowsNum:20
结束阶段渲染_响应6
开始阶段还原\u视图1
结束阶段还原\u视图1
开始阶段渲染_响应6
类ui.network.MbNetworks getFilter:net。Network@65f126

此时“事件类型”表单已完全加载,我可以看到页面,浏览器不再等待任何数据。在这里,您已经可以看到一件奇怪的事情:MbNetworks的getFilter被调用。此外,我的断点位于MbNetworks构建器的第一行。方法在初始化bean之前调用?嗯,可能只是Eclipse bug。不管怎么说,奇怪的事情还在继续:MbNetworks的每一位获得者都被称为。(请记住,没有“网络”页面,我在“事件类型”页面,它与网络没有任何共同之处)
MbNetworks:constructed 2011-03-16 18:14:01156
类ui.network.MbNetworks getFilter:net。Network@65f126
类ui.network.MbNetworks:[javax.faces.model。SelectItem@160ac3e,…]
类ui.network.MbNetworks getFilter:net。Network@65f126
class ui.network.MbNetworks access$3:数据大小
类ui.network.MbNetworks getRowsNum:20
class ui.network.MbNetworks access$3:数据
类ui.network.MbNetworks getItemSelection:null
类ui.network.MbNetworks getRowsNum:20
类ui.network.MbNetworks getRowsNum:20
类ui.network.MbNetworks getRowsNum:20
类ui.network.MbNetworks getActiveNetwork:null
类ui.network.MbNetworks getActiveNetwork:null
类ui.network.MbNetworks getTabName:detailsTab
类ui.network.MbNetworks getTabName:detailsTab
类ui.network.MbNetworks getLanguages:[javax.faces.model。SelectItem@130a65,javax.faces.model。SelectItem@f9d23]
类ui.network.MbNetworks getActiveNetwork:null

类ui.network.MbNetworks getActiveNetwork:null
类ui.network.MbNetworks getLanguages:[javax.faces.model。SelectItem@130a65,javax.faces.model。SelectItem@f9d23]
类ui.network.MbNetworks getNewNetwork:net。Network@5d0f3
类ui.network.MbNetworks:[javax.faces.model。SelectItem@160ac3e,…]
类ui.network.MbNetworks getNewNetwork:net。Network@5d0f3

类ui.netor