我有一个页面,我想根据视图参数给出的值包含页面的一部分(在本例中为页脚)。
我ViewScoped
在 preRenderView 上初始化了我的支持 bean
<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,查询数据库并在 a 中使用该值ui:include
?