将属性对象从.xhtml发送到bean时出错

时间:2014-08-19 20:39:00

标签: jsf primefaces

我有这个.xhtml文件。它是一个带有三个按钮的数据表页面(一个用于创建用户,一个用于编辑它们,一个用于删除它们)。创建和删除用户正在工作但不更新。当我调用方法actionListener="#{usuariosBean.actualizarUsuario}"时,我得到的所有参数都很好但不是Id,我得到0而不是用户的真实ID。

我试过用不同的.xhtml做它并且它运行良好所以我认为问题是关于.xhtml文件但是......我不知道。有人能帮助我吗?非常感谢!!!

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">

<body>

<ui:composition template="./../template.xhtml">

    <ui:define name="content">
        <p:growl id="msgs" showDetail="true" />

        <h:form>
            <p:commandButton update=":formCrear" icon="ui-icon-document"
                title="Crear Usuario" value="Crear Usuario"
                oncomplete="PF('usuarioDialogCrear').show();">
            </p:commandButton>
        </h:form>

        <h:form id="form">

            <p:dataTable var="usuario" value="#{usuariosBean.usuarios}"
                paginator="true" rows="10">

                <p:column headerText="Id">
                    <h:outputText value="#{usuario.id}" />
                </p:column>

                <p:column headerText="Nombre de Usuario">
                    <h:outputText value="#{usuario.nombreDeUsuario}" />
                </p:column>

                <p:column headerText="Contraseña">
                    <h:outputText value="#{usuario.contrasenya}" />
                </p:column>

                <p:column headerText="Rol">
                    <h:outputText value="#{usuario.rol}" />
                </p:column>

                <p:column headerText="" style="text-align:center; width:4%">
                    <p:commandButton update=":form:usuarioActualizar" id="Actualizar"
                        icon="ui-icon-pencil" title="Actualizar"
                        oncomplete="PF('usuarioDialogActualizar').show();">
                        <f:setPropertyActionListener value="#{usuario}"
                            target="#{usuariosBean.usuarioSeleccionado}" />
                    </p:commandButton>
                </p:column>

                <p:column headerText="" style="text-align:center; width:4%">
                    <p:commandButton update=":form:usuarioEliminar" id="Eliminar"
                        icon="ui-icon-close" title="Eliminar"
                        oncomplete="PF('confirmacion').show();">
                        <f:setPropertyActionListener value="#{usuario}"
                            target="#{usuariosBean.usuarioSeleccionado}" />
                    </p:commandButton>
                </p:column>

            </p:dataTable>

            <p:dialog header="Actualizar Usuario"
                widgetVar="usuarioDialogActualizar" modal="true" showEffect="fade"
                hideEffect="explode" resizable="false" width="400">
                <p:outputPanel id="usuarioActualizar" style="text-align:center;"
                    layout="block">

                    <p:panelGrid columns="2">
                        <h:outputText value="Id " />
                        <p:inputText
                            value="#{usuariosBean.usuarioSeleccionado.id}"
                            style="font-weight:bold" size="37" />
                        <h:outputText value="Usuario: " />
                        <p:inputText
                            value="#{usuariosBean.usuarioSeleccionado.nombreDeUsuario}"
                            style="font-weight:bold" size="37" />
                        <h:outputText value="Contraseña: " />
                        <p:inputText
                            value="#{usuariosBean.usuarioSeleccionado.contrasenya}"
                            style="font-weight:bold" size="37" />
                        <h:outputText value="Rol " />
                        <p:inputText value="#{usuariosBean.usuarioSeleccionado.rol}"
                            style="font-weight:bold" size="37" />
                    </p:panelGrid>

                </p:outputPanel>

                <f:facet name="footer">
                    <p:commandButton update=":form, :msgs" id="btnActualizarAceptar"
                        icon="ui-icon-disk" title="Guardar Usuario"
                        value="Actualizar Usuario"
                        actionListener="#{usuariosBean.actualizarUsuario}"
                        oncomplete="PF('usuarioDialogActualizar').hide()">
                    </p:commandButton>

                    <p:commandButton id="btnActualizarCancelar" icon="ui-icon-close"
                        title="Cancelar" value="Cancelar" type="button"
                        onclick="PF('usuarioDialogActualizar').hide()">
                    </p:commandButton>
                </f:facet>
            </p:dialog>

            <p:confirmDialog
                message="¿Está seguro que desea eliminar el usuario?"
                showEffect="bounce" hideEffect="explode" header="Eliminar Usuario"
                severity="alert" widgetVar="confirmacion">
                <p:outputPanel id="usuarioEliminar" style="text-align:center;"
                    layout="block">
                    <h:inputHidden value="#{usuariosBean.usuarioSeleccionado.id}" />
                </p:outputPanel>

                <p:commandButton id="confirmarDialogo" value="Aceptar"
                    icon="ui-icon-check" update=":form, :msgs"
                    oncomplete="PF('confirmacion').hide()"
                    actionListener="#{usuariosBean.eliminarUsuario}" />

                <p:commandButton id="cancelarDialogo" icon="ui-icon-close"
                    title="Cancelar" value="Cancelar"
                    oncomplete="PF('confirmacion').hide()">
                </p:commandButton>
            </p:confirmDialog>
        </h:form>

        <h:form id="formCrear">
            <p:dialog header="Crear Usuario" widgetVar="usuarioDialogCrear"
                modal="true" showEffect="fade" hideEffect="explode"
                resizable="false" width="400">

                <p:outputPanel id="usuarioCrear" style="text-align:center;"
                    layout="block">

                    <p:panelGrid columns="2">
                        <h:outputText value="Usuario: " />
                        <p:inputText value="#{usuariosBean.nombreDeUsuario}"
                            required="true" size="37" />
                        <h:outputText value="Contraseña: " />
                        <p:inputText value="#{usuariosBean.contrasenya}" required="true"
                            size="37" />
                        <h:outputText value="Rol " />
                        <p:inputText value="#{usuariosBean.rol}" required="true"
                            size="37" />
                    </p:panelGrid>
                </p:outputPanel>

                <f:facet name="footer">
                    <p:commandButton update=":form, :msgs" id="btnCrearAceptar"
                        icon="ui-icon-disk" title="Guardar Usuario"
                        value="Guardar Usuario" action="#{usuariosBean.guardarUsuario}"
                        oncomplete="PF('usuarioDialogCrear').hide()">
                    </p:commandButton>
                    <p:commandButton id="btnCrearCancelar" icon="ui-icon-close"
                        title="Cancelar" value="Cancelar"
                        oncomplete="PF('usuarioDialogCrear').hide()">
                    </p:commandButton>
                </f:facet>

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


    </ui:define>

</ui:composition>

</body>
</html>

0 个答案:

没有答案