Primefaces DialogReturn事件不会调用bean方法

时间:2014-10-17 21:36:14

标签: jsf-2 primefaces jsf-2.2

我正在使用Primefaces 4中的对话框架,我想用dialogReturn事件调用一个方法,我的代码是:

我把dialogReturn放在

的代码
<h:panelGrid id="idPgConfirmar" 
             columns="3" 
             width="100%" 
             border="0" 
             columnClasses="colC1-T,col-confirmada">
    <h:outputText value="&#160;&#160;&#160;" />
    <p:commandButton id="idBtResumenOS" 
                     value="Resumen y Confirmacion Orden de Salida" 
                     style="width: 360px;color: blue;font-size:" 
                     actionListener="#{ordenSalidaBean.verResumenConfirmarOrdenSalida}" 
                     update="idPgConfirmar">
        <p:ajax event="dialogReturn" 
                listener="#{ordenSalidaBean.retornoConfirmacionOrden}" 
                update=":idFormOrdenSalida"/>
    </p:commandButton>
    <p:message for="idBtResumenOS" display="text"/>
</h:panelGrid>

对话框:resumen_orden_salida.xhtml

<html  xmlns="http://www.w3.org/1999/xhtml"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title style="font-size: 12px;">Resumen Orden de Salida</title>
        <f:facet name="last">
            <h:outputStylesheet name="css/default2.css"/>
        </f:facet>
    </h:head>
    <h:body>
        <h:form id="idFormResumenOS">
            <p:dataTable id="idDataTableItemResumenOS" 
                         var="itemResumen" 
                         value="#{ordenSalidaBean.osu.lstItemOS}"
                         paginator="true" rows="5"  
                         rowIndexVar="row" 
                         paginatorPosition="bottom"
                         rowsPerPageTemplate="5,10"  
                         emptyMessage="Lista de Item Resumen">
                <p:column headerText="Nro" 
                          width="22px;" 
                          style="text-align:center;">
                    <h:outputText value="#{row+1}" />
                </p:column>
                <p:column headerText="Descripcion Item" 
                          style="text-align:left;">  
                    <h:outputText value="#{itemResumen.strItemArticulo}" />
                </p:column>  
                <p:column headerText="U. Med." 
                          style="text-align:center;" 
                          width="50px;" >  
                    <h:outputText value="#{itemResumen.strUnidad}"/>  
                </p:column>
                <p:column headerText="Cant." 
                          style="text-align:center;" 
                          width="30px;">  
                    <h:outputText value="#{itemResumen.strCantidad}"/>  
                </p:column>
                <p:column headerText="" 
                          style="text-align:center;" 
                          width="20px;">  
                    <p:graphicImage id="idImagen" 
                                    name="images/#{itemResumen.strImagen}.gif"/> 
                    <p:tooltip for="idImagen" 
                               value="#{itemResumen.strTooltip}" />
                </p:column>
            </p:dataTable> 
            <p:message for="idDataTableItemResumenOS" />
            <h:panelGrid columns="2" 
                         width="100%" 
                         columnClasses="colB1,colB2">
                <p:commandButton id="idBtnGuardar" 
                                 icon="ui-icon-check" 
                                 value="Guardar y Confirmar" 
                                 style="width: 180px;font-size: 12px;" 
                                 actionListener="#{ordenSalidaBean.confirmarOrdenSalida}" 
                                 disabled="#{!ordenSalidaBean.osu.confirmaOrden}"/>
                <p:commandButton id="idBtnCancelar" 
                                 icon="ui-icon-close" 
                                 value="Cancelar" 
                                 style="width: 180px;font-size: 12px;" 
                                 actionListener="#{ordenSalidaBean.cancelarConfirmacionOrdenSalida}"/>
            </h:panelGrid>
        </h:form>
    </h:body>
</html>

方法

public void retornoConfirmacionOrden(){
    FacesContext context = FacesContext.getCurrentInstance();
    if(osVista.getConfirmado()) {
        context.addMessage("keyOrdenSalida", new FacesMessage(FacesMessage.SEVERITY_INFO,
            "Mensaje","Registro "+osVista.getStrNroSerie()+"-"+osVista.getStrNumero()+" guardada y confirmada"));
    }
    else {
        context.addMessage("keyOrdenSalida", new FacesMessage(FacesMessage.SEVERITY_WARN,
            "Mensaje","Registro "+osVista.getStrNroSerie()+"-"+osVista.getStrNumero()+" guardada, sin confirmar"));
    }
}

对话框方法

public void confirmarOrdenSalida(ActionEvent event) {
    OrdenSDataUtil ordenData  = ordenSalidaBO.confirmarOrdenSalida(osVista,osu.getLstItemOS(),osu.getLstItemEliminar());
    osu.setLstItemOS(ordenData.getLstItemOSUtil()); 
    osVista = ordenData.getOrdenSalidaDTO();
    FacesContext context = FacesContext.getCurrentInstance();
    context.addMessage("keyOrdenSalida", new FacesMessage(FacesMessage.SEVERITY_INFO,
            "Mensaje","Registro "+osVista.getStrNroSerie()+"-"+osVista.getStrNumero()+" guardada y confirmada"));
    RequestContext.getCurrentInstance().closeDialog("/pages/logistica/movimientos/orden_salida/resumen_orden_salida");
}

但是不调用retornoConfirmacionOrden方法。

感谢。

0 个答案:

没有答案