【发布时间】:2012-09-25 14:14:46
【问题描述】:
我有一个页面,我想根据视图参数给出的值包含页面的一部分(在本例中为页脚)。
我的 ViewScoped 支持 bean 在 preRenderView 上初始化
<f:metadata>
<f:viewParam name="racecode" value="#{displayResults.racecode}" />
<f:event type="preRenderView" listener="#{displayResults.init}" />
</f:metadata>
这会查询数据库以获取要包含的页脚的名称。然后,以这种方式使用它:
<h:panelGroup id="customFooter" display="block">
<ui:include src="#{displayResults.customFooter}" />
</h:panelGroup>
这总是给我一个缺失的页面。但是,如果我手动输入页面名称,它就可以工作。如果我将 ui:include 替换为 h:outputText,则相同。
我知道这与 JSF 的阶段有关,并且在 ui:include 完成时,该值尚未设置。 (阅读和更好地理解这些阶段是我的 TODO 清单上的内容)。
问题仍然存在。我怎样才能完成这样的事情。让 bean 使用 viewParam,查询数据库并在 ui:include 中使用该值?
【问题讨论】:
标签: java jsf jsf-2 viewparams