调用两个对话框并保存在JSF中的两个metods中

时间:2016-06-16 17:05:29

标签: jsf primefaces

我有两个按钮和两个对话框,每个按钮调用一个对话框,每个对话框都有一个保存按钮,你在Bean中发送两个不同的方法。问题是它只能发送一个对话而不是另一个。 XHTML

<h:form id='form1'>
    <p:panel id="basic" header="#{usuarioBean.nompagina}" footer="" style="margin-bottom:20px">
        <p:panelGrid columns="3" style="width: 100%">
            <p:commandButton value="Nuevo" icon="ui-icon-document" actionListener="#{menuBean.setAccion('Registrar')}" type="button" onclick="PF('dlg').show();" update=":dialog"/>
        </p:panelGrid>
            .......
            <p:column headerText="Acción">
                <p:commandButton value="Asignar Rol" actionListener="#{usuarioBean.leerUsuario(rowusu)}" oncomplete="PF('wdatosvar').show()" update=":wdatosid" icon="ui-icon-person"/>
            </p:column>
        </p:dataTable>
    </p:panel>
</h:form>

    <p:dialog position="center top" styleClass="ui-widget-container" id="dialog" header="Usuarios" widgetVar="dlg" dynamic="true" modal="true" width="400">
        <h:form>
        <p:panelGrid columns="2">
            ...
            <p:commandButton value="Guardar" actionListener="#{usuarioBean.inUsuario()}" oncomplete="handleDialogSubmit2(args)" update=":form1:listusuario" icon="ui-icon-check" />
            <p:commandButton value="Cancelar" immediate="true" onclick="PF('dlg').hide();" icon="ui-icon-cancel" />
            <p:outputLabel id="refresc" />
        </p:panelGrid>
        </h:form>
    </p:dialog>

    <p:dialog header="Datos" position="center top" widgetVar="wdatosvar" id="wdatosid" modal="true" showEffect="explode" hideEffect="explode">
        <h:form>
            <h:panelGrid columns="2">
                ...
                <p:commandButton value="Guardar" actionListener="#{usuarioBean.saveUsuario()}" oncomplete="handleDialogSubmit(xhr, status, args)"  update=":form1:listusuario,@form,refrescar" icon="ui-icon-check" />
                <p:commandButton value="Cancelar" immediate="true" onclick="PF('wdatosvar').hide();" icon="ui-icon-cancel" />
                <p:outputLabel id="refrescar" />
            </h:panelGrid>
        </h:form>
    </p:dialog>  

和usuarioBean.java

@ManagedBean
@SessionScoped
public class usuarioBean {
    public void saveUsuario() throws Exception {
        usuariohistorialDAO dao = new usuariohistorialDAO();
        try {
            dao.insertCredencial(usuariohis,value1);            
            this.listarUsuarios(palabra);
        } catch (Exception e) {
            throw e;
        }
    }

    public void inUsuario() throws Exception{
        usuariohistorialDAO dao = new usuariohistorialDAO();        
        try {
            dao.insertarUsuario(usuariohis);
            this.listarUsuarios(palabra);
        } catch (Exception e) {
            throw e;
        }
    }
}

inUsuario没有用。

1 个答案:

答案 0 :(得分:-1)

不确切知道为什么,但这种形式解决了我的问题

<h:form id='form1'>
    <p:panel id="basic" header="Lista de Usuarios" footer="" style="margin-bottom:20px">
        <p:panelGrid columns="3" style="width: 100%">
            <p:commandButton value="Nuevo" icon="ui-icon-document" oncomplete="PF('dlg').show()" update=":dialog"/>
        </p:panelGrid>
        <p:inputText  value="#{usuarioBean.palabra}" id="search" class="inputmediano"/>
        <p:commandButton  value="Buscar" icon="ui-icon-refresh" actionListener="#{usuarioBean.bucarUsuario()}" update="listusuario"/>

        <p:dataTable tableStyleClass="ui-table-columntoggle" var="rowusu" value="#{usuarioBean.arrayusu}" paginator="true" paginatorPosition="bottom" rows="30"  id="listusuario" style="width: 100%;margin-top: 10px"  paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
            <p:column headerText="Id" style="width: 25px">
                <h:outputText value="#{rowusu.ush_id}"/>
            </p:column>
            <p:column headerText="Usuario" >
                <h:outputText value="#{rowusu.usu_nombre}"/>
            </p:column>
            <p:column headerText="Sexo" >
                <h:outputText value="#{rowusu.usu_sexo}"/>
            </p:column>
            <p:column headerText="Nick">
                <h:outputText value="#{rowusu.ush_correo}" />
            </p:column> 
            <p:column headerText="Rol">
                <h:outputText value="#{rowusu.nomrol}"/>
            </p:column>
            <p:column headerText="Cargo">
                <h:outputText value="#{rowusu.nomcargo}"/>
            </p:column>
            <p:column headerText="Acción">
                <p:commandButton value="Asignar Rol" actionListener="#{usuarioBean.leerUsuario(rowusu)}" oncomplete="PF('wdatosvar').show()" update=":wdatosid" icon="ui-icon-person"/>
                <p:commandButton value="Modificar" actionListener="#{usuarioBean.leerUsuario(rowusu)}" oncomplete="PF('dlg').show()" update=":dialog" icon="ui-icon-person"/>
            </p:column>
        </p:dataTable>
    </p:panel>
</h:form>