Il mio obiettivo è ottenere la larghezza dello schermo, l'altezza, ecc. In un bean di sessione in JSF. Secondo gli esempi che ho trovato, il modo per farlo è aggiungere un parametro a un comandoButton con un valore che è javascript. Il valore viene quindi trasferito alla variabile assignTo bean. Si suppone che l'attributo noEscape faccia in modo che il valore venga passato al posto del nome della variabile.Passaggio dei valori JavaScript a Bean con a4j: param
Questo funziona quasi. Quello che sta succedendo è che il nome della variabile letterale, ad es. "screen.height" si conclude nel bean invece di un numero, ad es. 600. Ho provato a cambiarlo in modo che chiami una funzione di script, ma questo non ha aiutato. (Nota, ho inserito i param all'interno di un comando command perché gli esempi l'hanno mostrato in questo modo e questo pulsante è un posto comodo ed è comunque necessario per l'app).
Ho il seguente codice di
<h:commandButton value="Log In" action="#{loginBean.login}" styleClass="buttons">
<a4j:param name="w" value="getWidth()" assignTo="#{browser.screenWidth}" noEscape="true" />
<a4j:param name="h" value="screen.height" assignTo="#{browser.screenHeight}" noEscape="true" />
<a4j:param name="a" value="navigator.userAgent" assignTo="#{browser.userAgent}" noEscape="true" />
</h:commandButton>
dove
<script>
function getWidth() {
return screen.width;
}
</script>
Anche in questo caso, il problema specifico è che sto ricevendo i nomi delle variabili nel fagiolo, non i valori delle variabili. Qualsiasi aiuto sarebbe molto apprezzato.
Grazie. Questo risolve il mio problema. Non so bene quanto mi sia sfuggita la parte h vs a4j. – wjr
@ user2418375 Contento che abbia aiutato, non dimenticare di contrassegnare come accettato! –