prime password number inputtext inputswitch faces primefaces calendar

password - primefaces p spinner



p: valor de calendario no actualizado con dateSelect (4)

Tengo ap: componente de calendario dentro de ap: dialog one. Cuando se muestra el cuadro de diálogo, toma su valor de la propiedad en back bean, pero cuando se selecciona una nueva fecha, SelectEvent llegó al oyente y trae el valor anterior y no la nueva fecha seleccionada. ¿Qué está mal en el próximo código?

<p:dialog id="eventDialog" widgetVar="eventDialog" header="#{textos.confirmarFechaHora}" showEffect="clip" hideEffect="clip" modal="true" appendToBody="true"> <!-- A false, no entran los eventos tras modificar la fecha/hora del calendario --> <h:panelGrid id="eventDetails" columns="2"> <h:outputLabel for="calHora" value="#{textos.horaComienzo}" /> <p:calendar id="calHora" locale="es" pattern="dd/MM/yyyy HH:mm" value="#{schedulePFController.fechaComienzo}" mode="inline" required="true" accesskey="true" valueChangeListener="#{schedulePFController.cambiaHoraComienzoVCL}"> <p:ajax event="dateSelect" listener="#{schedulePFController.cambiaHoraComienzo}"/> </p:calendar> <p:commandButton value="#{textos.cancelar}" oncomplete="eventDialog.hide();"/> <p:commandButton value="#{textos.mostrarCitas}" action="#{schedulePFController.verEntradaCalendario}" rendered="#{schedulePFController.clickedOnCita}"/> <p:commandButton value="#{textos.addCita}" action="#{schedulePFController.addCita}" rendered="#{!schedulePFController.clickedOnCita}"/> </h:panelGrid>

public void cambiaHoraComienzo(SelectEvent ev) { Date date = (Date)ev.getObject(); fechaComienzo = date; horaComienzo = new DateCita(date); logger.debug("Cambiando fechaComienzo "+horaComienzo.toString()+" +++++++++++++++++++++++++++++++++++++++++");}


Estás haciendo esto de la manera incorrecta, a complicado.

Eche un vistazo aquí:

<p:calendar value="#{ivkDaten.beginn}" locale="de" lang="de" pattern="dd.MM.yyyy" label="#{messages[''services.ivk.beginn'']}:" width="80" id="ivkbeginn" effect="fadeIn" readonlyInput="true" disabled="true" showOn="button" mindate="#{services.minDate}" maxdate="#{services.maxDate}"> <p:ajax event="dateSelect" listener="#{ivkDaten.recalcDate()}" update="ablauf" /> </p:calendar>

Necesitas configurar getter / setter para beginn y cuando llamas al método "reclacDate()" puedes usar beginn y estoy bastante seguro de que tendrás la nueva fecha.


Este p:calendar está dentro de una h:form ?

Tuvimos exactamente el mismo problema y notamos que habíamos olvidado esto


Esto parece ser un problema con las versiones anteriores de PrimeFaces. Esto ha sido arreglado en PrimeFaces 3.3 o 3.3.1. Intenta actualizar a una versión más nueva.


No sé por qué está utilizando valueChangeListener="#{schedulePFController.cambiaHoraComienzoVCL}" en p:calender cuando ya está invocando un listner en su llamada ajax.
Simplemente elimine valueChangeListener="#{schedulePFController.cambiaHoraComienzoVCL}" de su p:calender y luego check.listener listener="#{schedulePFController.cambiaHoraComienzo}" que esté utilizando en p:ajax etiqueta p:ajax es suficiente