JSF 2.0, Mojarra 2.0.1, 3.4.1 primefacesOttenere valore backing bean con JavaScript
Non ci sono domande simili, ma ho bisogno di qc. altro; la funzione javascript deve attendere il metodo backing bean, che sta riempiendo la variabile che voleva essere estratta dalla funzione js. Quello che voglio dire è:
<p:commandLink action="#{statusBean.getStatuses}" oncomplete="afterLoad()"/>
Supponendo funzione js solo ottenere il valore e la stampa allo schermo.
function afterLoad() {
alert("#{statusBean.size}");
}
E qui è il ragazzo di compleanno:
@ManagedBean
@ViewScoped
public class StatusBean {
public int size=0;
List<Status> panelList = new ArrayList<Status>();
public void getStatuses() {
this.panelList = fillList();
this.size = panelList.size(); //Assuming 3
}
//getter and setters
}
Quindi funzione avvisa la dimensione come 0, che è il valore iniziale di esso, mentre ci aspettiamo di vedere 3.
Come funziona: Se aggiungo l'annotazione @PostConstruct
alla testa del bean, sicuramente ottiene la dimensione corretta, perché il bean è già stato costruito prima del caricamento della pagina. Ma questo significa processi ridondanti, valore appena necessario dopo l'azione commandlink. Quindi, come posticipare la funzione js? Qualche idea?
Mojarra 2.0.1 è antica. Ha già più di 3 anni. Considerare l'aggiornamento. Ci sono molti, molti bugfix e miglioramenti nella versione 2.1.19 corrente. – BalusC
@BalusC Ok Ho intenzione di rivedere le differenze di versione, anche entrambe le risposte sono corrette e funzionano grazie a te e a partlov ma non ho potuto decidere quale scegliere come risposta. Dovrei scegliere in base al primo arrivato, primo servito? Ma il server dice che hai risposto 1 minuto fa, ma quando l'ho guardato per l'ultima volta è stato detto che Partlov ha risposto per primo. È lo stesso tempo? –
Basta scegliere quello che ti è più utile.Le risposte pubblicate finora non forniscono esattamente le stesse informazioni. Per quanto riguarda la timestamp di risposta esatta, basta controllare la descrizione del timestamp "risposta". Ma non dovresti considerare questo nella scelta della risposta. Questo simula solo FGITW. – BalusC