我是Primefaces的新手。现在我正在将RichFaces迁移到Primefaces 5.1。在RichFaces中,每个表单都有绑定initForm来绑定Page Attributes.In相同的表单绑定使用PrimeFaces或任何其他属性来绑定页面属性。
我在Richfaces中使用下面的代码:
<f:subview id="testSubView">
<h:form id="testForm" binding="#{test.initForm}">
........
</h:form>
<f:subview>
Test.java
public HtmlForm initForm()
{
fetchIntialPageAttributes();
return initForm
}
private void fetchIntialPageAttributes()
{
userTextbox="";
messagePanelRender=true;
userCommandButton=true;
userCommanButtonValue="save";
}
现在怀疑在Primefaces中使用表单加载相同的绑定属性时最初绑定。
答案 0 :(得分:1)
使用<f:event type="postAddToView">
或者<f:event type="preRenderView">
来代替在视图构建时将组件添加到视图之后,或者可能在视图渲染时间之前立即触发托管bean侦听器方法。 p>
<h:form id="testForm">
<f:event type="postAddToView" listener="#{test.fetchIntialPageAttributes}" />
...
</h:form>
请注意,这一切并非针对PrimeFaces(也不是RichFaces),而是针对JSF本身。 binding
属性在JSF 1.x时代实际上是一个黑客/解决方法。这是JSF 2.0添加新组件系统事件和<f:event>
标记的原因之一。理想的JSF 2.x页面不会在任何地方的支持bean属性上使用binding
。