Come chiamare il metodo del bean backing JSF solo quando si verifica l’evento onclick / oncomplete / on … e non sul caricamento della pagina

Ho due pulsanti immagine:

Tuttavia, entrambi i metodi vengono immediatamente richiamati quando la pagina viene caricata con i valori 1 e 2. Anche quando faccio clic su di esso, vengono richiamati entrambi i metodi.

Come posso ottenere la funzionalità desiderata di chiamare il metodo bean solo quando il pulsante immagine è effettivamente cliccato?

Questo approccio non funzionerà. Sembra che tu stia confondendo / mescolando i concetti di base dello sviluppo web del “lato server” e del “lato client” e che fraintendiamo il ruolo di JSF ed EL.

JSF è un linguaggio lato server che viene eseguito sul server Web su richiesta HTTP e produce codice HTML / CSS / JS che viene restituito con la risposta HTTP. Tutte le espressioni EL sotto forma di ${} e #{} saranno eseguite sul lato server durante la generazione dell’output HTML. JavaScript è un linguaggio lato client che viene eseguito sul browser Web e funziona sull’albero DOM HTML. L’attributo HTML onclick deve specificare una funzione JavaScript che verrà eseguita sul lato client del particolare evento HTML DOM.

Per richiamare un metodo bean gestito JSF, è necessario l’attributo action o *listener . JSF fornisce componenti per generare l’HTML desiderato e specificare le azioni Ajax desiderate che cambierebbero lo stato lato server. Un può essere generato usando un’immagine . Un metodo bean può essere richiamato dall’attributo action di quel componente. Quel componente può essere identificato incorporando il .

Quindi, il seguente dovrebbe farlo per voi:

  
Home Member

Guarda anche:

  • Differenze tra azione e azioneListener
  • Come richiamare un metodo di azione bean gestito nell’attributo on * di un componente JSF
  • Come richiamare un bean gestito JSF su un evento DOM HTML utilizzando JavaScript nativo?