Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javajavax。面孔。在ajax渲染中删除ViewState。CommandLink正在进行第二次单击

我知道jsf表单中的ajax呈现存在问题,因此我编写了如下代码来避免问题:

<h:panelGroup id="solicitudesPendientes" layout="block" styleClass="seccion">
            <h:panelGroup rendered="#{!gestionSociosControlador.haySolicitudesPendientes()}">
                No hay solicitudes pendientes de revisi&oacute;n
            </h:panelGroup>
            <h:form id="gestionSolicitudesPendientesForm" prependId="false">
                <h:dataTable id="solicitudesPendientesTbl" styleClass="dataTable" rendered="#{gestionSociosControlador.haySolicitudesPendientes()}"
                    value="#{gestionSociosControlador.getSolicitudesPendientes()}" var="solicitud">
                    <h:column>
                        #{solicitud.solicitante.nombre} #{solicitud.solicitante.apellidos}
                    </h:column>

                    <h:column>
                        <span class="imgLnkInline">
                        <h:commandLink id="botonAceptarSolicitudPertenenciaClub"
                                action="#{gestionSociosControlador.aceptarSolicitud(solicitud.id)}">
                                <h:graphicImage url="/resources/images/silkIcons/accept.png" /> Aceptar
                                <f:ajax execute="@this" render="@form :gestionSocios :gestionSociosForm" />
                            </h:commandLink>
                        </span>
                        <span class="imgLnkInline">
                        <h:commandLink id="botonRechazarSolicitudPertenenciaClub"
                                action="#{gestionSociosControlador.rechazarSolicitud(solicitud.id)}">
                                <h:graphicImage url="/resources/images/silkIcons/delete.png" /> Rechazar
                                <f:ajax execute="@this" render="@form :solicitudesPendientes" />
                            </h:commandLink>
                        </span>
                        <span class="imgLnkInline">
                            <h:commandLink id="botonAplazarSolicitudPertenenciaClub"
                                action="#{gestionSociosControlador.aplazarSolicitud(solicitud.id)}">
                                <h:graphicImage url="/resources/images/silkIcons/date_next.png" /> Decidir mas tarde
                                <f:ajax execute="@this" render="@form :solicitudesPendientes :gestionSolicitudesAplazadasForm" />
                            </h:commandLink>
                        </span>
                    </h:column>
                </h:dataTable>
                <h:messages id="gestionSolicitudesPendientesMsgs" for="gestionSolicitudesPendientesForm" layout="table"
                    errorClass="errorMessage"   infoClass="infoMessage" warnClass="warnMessage" />
            </h:form>

            <h:panelGroup rendered="#{gestionSociosControlador.haySolicitudesAplazadas()}">
                <span id="mostrarSolicitudesAplazadasLnk" class="imgLnkInline" onclick="mostrarSolicitudesAplazadas()" style="cursor:pointer">
                 <h:graphicImage url="/resources/images/silkIcons/bullet_toggle_plus.png" /> Ver #{gestionSociosControlador.getSolicitudesAplazadas().size()} solicitudes ocultas
                </span>

                <h:form id="gestionSolicitudesAplazadasForm" prependId="false">
                    <h:dataTable id="solicitudesAplazadasTbl" styleClass="dataTable" style="display:none"
                        value="#{gestionSociosControlador.getSolicitudesAplazadas()}" var="solicitud">
                        <h:column>
                            #{solicitud.solicitante.nombre} #{solicitud.solicitante.apellidos}
                        </h:column>

                        <h:column>
                            <span class="imgLnkInline">
                            <h:commandLink id="botonAceptarSolicitudPertenenciaClubAplazada"
                                    action="#{gestionSociosControlador.aceptarSolicitud(solicitud.id)}">
                                    <h:graphicImage url="/resources/images/silkIcons/accept.png" /> Aceptar
                                    <f:ajax execute="@this" render="@form :gestionSocios :gestionSociosForm :solicitudesPendientes :gestionSolicitudesAplazadasForm" />
                                </h:commandLink>
                            </span>
                            <span class="imgLnkInline">
                            <h:commandLink id="botonRechazarSolicitudPertenenciaClubAplazada"
                                    action="#{gestionSociosControlador.rechazarSolicitud(solicitud.id)}">
                                    <h:graphicImage url="/resources/images/silkIcons/delete.png" /> Rechazar
                                    <f:ajax execute="@this" render="@form :solicitudesPendientes :gestionSolicitudesAplazadasForm" />
                                </h:commandLink>
                            </span>
                        </h:column>
                    </h:dataTable>
                    <h:messages id="gestionSolicitudesAplazadasMsgs" for="gestionSolicitudesAplazadasForm" layout="table"
                        errorClass="errorMessage"   infoClass="infoMessage" warnClass="warnMessage" />
                </h:form>

                <span id="ocultarSolicitudesAplazadasLnk" class="imgLnkInline" onclick="ocultarSolicitudesAplazadas()" style="display:none">
                    <h:graphicImage url="/resources/images/silkIcons/bullet_toggle_minus.png" /> Ocultar solicitudes aplazadas
                </span>
            </h:panelGroup>
        </h:panelGroup>

        <div class="tituloSeccion"><h3>Miembros</h3></div>
        <h:panelGroup id="gestionSocios" layout="block" styleClass="seccion">
            <h:panelGroup rendered="#{!gestionSociosControlador.haySocios()}">
                El club no tiene socios.
            </h:panelGroup>
            <h:form id="gestionSociosForm" prependId="false">
                <h:dataTable id="sociosTbl" styleClass="dataTable" rendered="#{gestionSociosControlador.haySocios()}"
                    value="#{gestionSociosControlador.getSocios()}" var="socio">
                    <h:column>
                        #{socio.nombre} #{socio.apellidos}
                    </h:column>

                    <h:column>
                        <span class="imgLnkInline">
                            <h:commandLink id="botonExpulsarSocio" action="#{gestionSociosControlador.expulsarSocio(socio.id)}">
                                <h:graphicImage url="/resources/images/silkIcons/user_delete.png" /> Expulsar
                                <f:ajax execute="@this" render="@form :gestionSocios" />
                            </h:commandLink>
                        </span>
                    </h:column>
                </h:dataTable>
                <h:messages id="gestionSociosMsgs" for="gestionSociosForm" layout="table"
                    errorClass="errorMessage"   infoClass="infoMessage" warnClass="warnMessage" />
            </h:form>
        </h:panelGroup>

除了一个命令外,命令链接之间的所有单击命令战斗都可以正常工作。如果我第一次用^{id1}单击CommandLink$

奇怪的是,当我用^{id2}点击CommandLink时$

我不确定这里发生了什么,因为我认为我编写代码是为了避免这个特定的bug


共 (0) 个答案