使用JSF和PrimeFaces時遇到了一些問題。我有一個表格,有兩個<p:selectonemenu>
和兩個<h:outputText>
s。第一個<p:selectonemenu>
的內容更新第二個,兩個<h:outputText>
更新爲第二個<p:selectonemenu>
。 <p:selectonemenu>
s都依賴於我的支持bean上的值。問題是,當FIRST <p:selectonemenu>
更改其值時,我無法清除<h:outputText>
。清除JSF上的輸出字段
我嘗試使用<f:ajax>
與偵聽器來清除當前顯示的實體的內容。
這裏的XHTML:
<h:outputText value="#{bundle.BailmentFamiliesLabel_bailmentFamCode}"/>
<p:selectOneMenu id="bailmentFamilyCode" value="#{bailmentsController.selected.bailmentFamId}" required="false">
<f:selectItems value="#{bailmentFamiliesController.itemsAvailableSelectOne}" var="famid"/>
<f:ajax event="change" render="description price bailmentCode" listener="${bailmentsController.clearView(famid)}"/>
</p:selectOneMenu>
<h:outputText value="#{bundle.BailmentsLabel_bailmentCode}"/>
<p:selectOneMenu id="bailmentCode" value="#{bailmentsController.selected}" required="false">
<f:selectItems value="#{bailmentsController.itemsAvailableSelectOneByFamId}"/>
<f:ajax event="change" render="globalForm" listener="#{bailmentsController.view(bailmentsController.selected.bailmentCode,bailmentsController.selected.bailmentFamId)}" />
</p:selectOneMenu>
<h:outputText value="#{bundle.Label_description}"/>
<h:outputText value="#{bailmentsController.selected.description}" title="#{bundle.Title_description}" id="description"/>
<h:outputText value="#{bundle.BailmentsLabel_purchasePriceMsj}"/>
<h:outputText value="#{bailmentsController.selected.purchasePrice}" title="#{bundle.BailmentsTitle_purchasePrice}" id="price"/>
而且第<p:selectonemenu>
上bailmentsController監聽器:每個保釋被分配一個BailmentFamily,
public void clearView(BailmentFamilies bf) {
if (bf != null) {
current = new Bailments();
current.setBailmentFamId(bf);
}
}
在我的數據庫這就是爲什麼我使用的是2步篩選器。第一個<p:selectonemenu>
列出了所有可用的BailmentFamilies,第二個<p:selectonemenu>
顯示了所選BailmentFamily的所有可用的Bailment。 <h:outputText>
顯示所選保釋人的信息,這就是爲什麼當BailmentFamily更改時需要清除它們的原因。
任何人都可以提出另一個行動方案嗎?因爲這沒有被證明是有效的。非常感謝你。
爲什麼你期待''在沒有被列入第一個選擇菜單的' '標籤的'render'屬性中時被更新爲ajax? –
kolossus
2013-03-15 18:36:19