【发布时间】:2012-09-25 23:11:26
【问题描述】:
我在 f:metadata 元素中使用预渲染视图事件调用另一个页面。
如果我使用<h:link> 导航到页面,它会工作并调用侦听器方法。
但是,如果我使用属于调用页面的托管 bean 的操作方法的结果导航到该页面,则不会调用 prerenderview 中指定的侦听器(就像通过链接调用时一样)。它确实导航到第二页,只是没有侦听器调用。
我真的更喜欢从 action 方法调用,因为我用它来做一些工作,并在会话映射中放置一个变量供被调用页面使用。我不确定如何使用链接来实现相同的目的。该对象可能相当大...... kb 不是 Mb,但仍然不是我想要放入请求中的东西。
我尝试将调用页面请求的托管 bean 设置为范围和视图范围。
如果从托管 bean 结果调用 prerenderview 是否不可能触发它?正如我所说,我通过链接让它工作。
<body>
<ui:define name="metadata">
<f:view>
<f:metadata>
<f:event type="preRenderView" listener="#{businessBean.init}" />
</f:metadata>
</f:view>
</ui:define>
<ui:composition template="#{navigationprops.soulard_2col_uprefs_template}">
【问题讨论】:
标签: jsf-2 facelets managed-bean