[Jsf] commandButton / commandLink / ajax action / metodo listener non richiamato o valore di input non impostato / aggiornato



Answers

Se h:commandLink è all'interno di h:dataTable esiste un'altra ragione per cui h: commandLink potrebbe non funzionare:

La sorgente dati sottostante associata a h:dataTable deve essere disponibile anche nel secondo ciclo di vita JSF attivato quando viene fatto clic sul collegamento.

Quindi, se l'origine dati sottostante è a richiesta, h:commandLink non funziona!

Question

A volte, quando si utilizza <h:commandLink> , <h:commandButton> o <f:ajax> , il metodo action , actionListener o listener associato al tag non viene semplicemente richiamato. Oppure, le proprietà del bean non vengono aggiornate con i valori UIInput inviati.

Quali sono le possibili cause e soluzioni per questo?




Mi sono divertito un sacco a fare il debug di un problema in cui un'azione di <h:commandLink> in richfaces rifiutava di sparare. Il tavolo funzionava a un certo punto ma si fermava senza una ragione apparente. Non ho lasciato nulla di intentato, solo per scoprire che il mio rich:datatable stava usando la rowKeyConverter errata rowKeyConverter che restituiva valori null che i facsimilmente utilizzavano come chiavi di riga. Ciò ha impedito il <h:commandLink> dell'azione <h:commandLink> .




Sono rimasto bloccato con questo problema me stesso e ho trovato una causa in più per questo problema. Se non hai i metodi setter nel tuo backing bean per le proprietà usate nel tuo * .xhtml, allora l'azione non viene semplicemente invocata.




Vorrei menzionare un'altra cosa che riguarda p:commandButton di Primefaces!

Quando si utilizza p:commandButton per l'azione che deve essere eseguita sul server, non è possibile utilizzare type="button" perché è per i pulsanti che vengono utilizzati per eseguire javascript personalizzati senza causare una richiesta ajax / non-ajax al server.

A tale scopo, è possibile dispensare l'attributo type (il valore predefinito è "submit" ) oppure è possibile utilizzare esplicitamente type="submit" .

Spero che questo aiuti qualcuno!




Links