请求具有给定参数的新页面时的一般方法是什么,即调用CDI bean操作并将结果绑定到页面组件?
我正在使用这种'模式',但这是正确的方法吗?
<ui:define name="content">
<h:form id="dataForm">
#{userForm.init(param.id, param.mode)}
<!-- User edit Dialog -->
<p:panel>
...
</:panel>
</h:form>
</ui:define>
问题在于,当使用'rendered'属性时,这取决于bean(非阻塞)进程结果,但页面可能会更快地呈现。因此,我应该能够在处理后调用页面UI组件上的更新过程。
答案 0 :(得分:1)
如果您使用的是JSF 2.2,那么可以选择:
<f:metadata>
<f:viewAction action="#{backingBean.action}"/>
</f:metadata>
如果你是&lt; JSF2.2,但你碰巧使用Seam你可以使用这样的东西作为预渲染视图事件,它不必在模板中,你可以把它放在你的ui:composition
<强> XHTML 强>
xmlns:s="http://jboss.org/seam/faces"
<f:metadata>
<s:viewAction action="#{backingBean.action}" />
</f:metadata>
这里有一些东西需要阅读Seam3,如果没有,你可以随时使用经典方式:
<f:metadata>
<f:viewParam name="id" value="#{backingBean.entryId}"/>
<f:event type="preRenderView" listener="#{backingBean.loadEntry}"/>
</f:metadata>