我有一个JSF 2 .xhtml页面,如下所示:
<h:body>
<f:event type="preRenderView" listener="#{view.init}" />
<customComponents:mytable />
</h:body>
复合实现
<composite:implementation>
<h:form id="tableForm">
<ui:repeat value="#{view.actions}" var="action">
<h:outputText value="#{action.start}">
<f:convertDateTime timeZone="#{view.timeZone}" />
</h:outputText>
</h:form>
</composite>
现在,当我加载视图时,复合体的#{view.timeZone}
被称为listener={view.init}
我不懂。我希望在调用getter之前调用init
消息。你能告诉我错误在哪里吗?
答案 0 :(得分:0)
preRenderView
必须位于f:metadata
标记中。例如:
<f:metadata>
<f:event type="preRenderView" listener="#{view.init}"/>
</f:metadata>
仅供参考,这篇文章也可以帮助你When to use f:viewAction / preRenderView versus PostConstruct?