Primefaces:selectOneMenu未重置

时间:2014-04-01 13:59:54

标签: jsf primefaces modal-dialog selectonemenu

人。 我坚持以下问题。我有一个模态对话框,其中包含两个selectOneMenu组件。当我关闭对话框并再次打开它时,仍然会选择selectoneMenu中的值。这是我的菜单:

 <p:selectOneMenu id="fromCurrency"
value="#{dialog.exchangeRateManageContainer.currencyIdFrom}"                                                   
    styleClass="ui-input-required"                                      
    required="true"
requiredMessage="#{msgs['validation.maintenance.exchangeRate.fromCurrency']}">                                         
    <f:selectItem
    itemLabel="#{msgs['label.maintenance.selectCurrency']}"/>                                       
    <f:selectItems value="#{dialog.currencies}" var="currency"
    itemLabel="#{currency.code}"
    itemValue="#{currency.currencyId}"/>
    </p:selectOneMenu>

<p:outputLabel for="toCurrency" value="#{msgs['label.maintenance.toCurrency']}" />
<p:selectOneMenu id="toCurrency"
    value="#{dialog.exchangeRateManageContainer.currencyIdTo}"
    styleClass="ui-input-required"
        required="true"
    requiredMessage="#{msgs['validation.maintenance.exchangeRate.toCurrency']}">
<f:selectItem itemLabel="#{msgs['label.maintenance.selectCurrency']}"/>
<f:selectItems value="#{dialog.currencies}" var="currency"
    itemLabel="#{currency.code}"
    itemValue="#{currency.currencyId}"/>

这是取消按钮:

    <p:commandButton id="cancelButton"
    value="#{msgs['label.button.cancel']}"
    icon="ui-icon-cancel"
    action="#{dialog.cancel()}"
    immediate="true"
    process="@this"
    oncomplete="addExchangeRateDialog.hide();"/>

这是取消方法:

   public void cancel() {
    manageCurrenciesDialog = null;
   }

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

我的解决方案是在命令按钮上添加update属性,打开带有对话框ID的对话框。它有效。

答案 1 :(得分:0)

要重置选择,您需要将组件的值设置为null。

将您的取消方法更改为:

public void cancel() {
    manageCurrenciesDialog = null;
    exchangeRateManageContainer.currencyIdFrom = null;
    exchangeRateManageContainer.currencyIdTo = null;
}

答案 2 :(得分:-1)

重置所有组件的值

我通过调用action to backing bean方法重置了所有组件的值。 在此方法内部,我将所有组件的值(例如p:selectOneMenu和p:selectBooleanCheckbox)分配给null。 它运作得很好。