Primefaces在p:对话框中重置消息

时间:2014-02-05 07:18:57

标签: jsf-2 primefaces

我在点击命令链接时打开一个弹出窗口,弹出窗口有一个文本框和commandLink 每当我按下提交文本框留空,它显示验证消息,直到现在这很好。现在,如果我使用右上角的十字图标关闭弹出窗口。然后再次单击showPopup,它会显示错误消息。我想清除那些消息并打开新的弹出窗口。 下面是我的代码

<p:commandLink id="showDialogButton" styleClass="add_icon"
                                             value="ADD" onstart="#{dashboardBean.resetFoodPromoDTO()}" oncomplete="PF('dlg').show()" />

 public void resetFoodPromoDTO(){
    foodPromoDTO=null;
        }

弹出对话框

<p:dialog id="dialog" visible="#{not empty facesContext.messageList}" styleClass="customized" widgetVar="dlg" draggable="true" closable="true" resizable="false" width="730">
<div class="popup_subheader">
<div class="float_left">Add - Food Promotion Activity</div>
<div class="float_right"></div>
<div class="clear"></div>
</div>
<div class="popuptext">
            <div class="form-label"><label title="Project">Project:    </label></div>
            <div class="form-field"><p:inputText  id="projectName" value="#{dashboardBean.foodPromoDTO.project}" required="true" requiredMessage="#{msg['validation.project.name']}"/>
            <p:message id="projeMsgId" for="projectName" autoUpdate="true"/>
            </div>
            <div class="clear">&nbsp;</div>

            <div class="form-label"><label title="Promo Date">Promo Date:</label></div>

            <div class="btn_area_popup">
            <span>
            <p:commandLink id="submitButton" validateClient="true" value="Save" action="#{dashboardBean.addFoodPromotion()}" update="@form" onuccess="PF('dlg').hide();" ajax="true"/>
            </span>
            </div> 
            <div class="clear"></div>   

1 个答案:

答案 0 :(得分:1)

您必须更新对话框

<p:dialog id="dialog" visible="#{not empty facesContext.messageList}" styleClass="customized" widgetVar="dlg" draggable="true" closable="true" resizable="false" width="730">
    <h:form id="dialog">
       <p:panel id="dialogBody">

            ....

       </p:panel>
   </h:form>
</p:dialog>

您可以使用以下代码更新对话框:

<p:commandLink id="showDialogButton" styleClass="add_icon"
     value="ADD" actionListener="#{dashboardBean.resetFoodPromoDTO()}" oncomplete="PF('dlg').show()" update=":dialog:dialogBody" />

您必须使用actionListener