Domanda

Sto riscontrando un piccolo problema con l'utilizzo dell'espressione valutata condizionalmente in jsf/a4j

Ecco il mio codice

<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 casella di controllo booleana abilita/disabilita in modo condizionale la convalida.

Questo non funziona:a4j:commandButton salta semplicemente la convalida.

Grazie.

È stato utile?

Soluzione

Se la testo di input fallisce la convalida (fase di convalida del processo), quindi il valore mybean.condizione non verrà aggiornato (fase Process Updates).Poiché il campo di testo utilizza il file necessario attributo, questo è abbastanza probabile.

Ciclo di vita dal documento RichFaces:

alt text
(fonte: jboss.org)

Se una qualsiasi fase JSF fallisce, il ciclo di vita passa a Render Response per evitare di operare su input non validi.Puoi usare il h:messaggio E h:messaggi tag per visualizzare gli errori segnalati (anche se, poiché stai utilizzando AJAX, dovrai inserirli in qualcosa che verrà ri-renderizzato.

Immagino che se imposti il ​​file ajaxSingle attributo su aj4:supporto tag, otterresti il ​​comportamento desiderato.La documentazione dice che questo invierà solo il valore per il controllo, quindi il campo di testo non sarà coinvolto nelle fasi Applica valori richiesta/Convalide processo/Aggiornamenti processo.

Altri suggerimenti

Qual è la portata di MyBean? Se si tratta di richiesta di portata, allora il suo valore verrà ripristinato quando si fa clic sul pulsante e il campo di input possono essere trattati a tutti (se reso risolve a 'false').

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top