Pregunta

Tengo un pequeño problema con el uso de expresiones evaluadas condicionalmente en jsf/a4j.

Aquí está mi código

<a4j:form>
         <h:inputText id="id1" value="#{mybean.myvalue}" size="1"
                   required="#{not mybean.condition}"
                   rendered="#{not mybean.condition}"
                   requiredMessage="Put a number in here" />

           <h:selectBooleanCheckbox value="#{mybean.condition}">
                <a4j:support event="onclick" reRender="id1"/>
            </h:selectBooleanCheckbox>

<a4j:commandButton action="#{mybean.myaction}" value="Do something" />

 </a4j:form>

La casilla booleana habilita/deshabilita condicionalmente la validación.

Esto no funciona:el a4j:commandButton simplemente omite la validación.

Gracias.

¿Fue útil?

Solución

Si el inputText no pasa la validación (fase validaciones de proceso), entonces el valor de mybean.condition no se actualizará (fase Actualizaciones de Procesos). Desde el campo de texto utiliza el requerida atributo, esto es bastante probable.

Ciclo de vida del documento RichFaces:

alt text
(fuente: jboss.org )

Si falla cualquiera de las fases de JSF, el ciclo de vida salta a Render Respuesta a evitar operar entrada no válida. Se puede utilizar el h: Mensaje de y h: mensajes etiquetas para ver errores reportados (aunque debido a que está utilizando AJAX, tendrá que ponerlos en algo que va a ser re-prestados.

Supongo que si se establece el ajaxSingle en el atributo AJ4: apoyar etiqueta, se llega a la conducta que desea. La documentación dice que esto sólo se presentará el valor para el control, por lo que el campo de texto no se participa en la solicitud Valores / validaciones de proceso / fases aplicar las actualizaciones de proceso.

Otros consejos

¿Cuál es el alcance de mybean?Si se trata del alcance de la solicitud, su valor se restablecerá cuando haga clic en el botón y el campo de entrada podría procesarse (si se representa, se resuelve como "falso").

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top