JSF 2.0, 2.0.1, Mojarra PrimeFaces 3.4.1Pierwsze podkładką wartość Bean z JavaScript
Istnieją podobne pytania, ale potrzebuję czegoś. jeszcze; Funkcja javascript musi czekać na metodę komponentu bean, która wypełnia zmienną, która ma być ściągnięta z funkcji js. Chcę powiedzieć, że:
<p:commandLink action="#{statusBean.getStatuses}" oncomplete="afterLoad()"/>
Zakładając, że funkcja js właśnie pobiera wartość i drukuje ją na ekranie.
function afterLoad() {
alert("#{statusBean.size}");
}
I tu jest dziecko urodziny:
@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
}
Więc funkcja alarmuje wielkość jako 0, co jest wartością początkową tego, podczas gdy my spodziewaliśmy się zobaczyć 3.
Jak to działa: Jeśli dodam adnotację @PostConstruct
do główki fasoli, z pewnością otrzyma ona prawidłowy rozmiar, ponieważ komponent bean jest już zbudowany przed wczytaniem strony. Oznacza to jednak nadmiarowe procesy, których wartość jest po prostu wymagana po działaniu polecenia commandlink. Jak odłożyć funkcję JS? Jakieś pomysły?
Mojarra 2.0.1 jest starożytna. Już ponad 3 lata. Rozważ ulepszanie. W obecnej wersji 2.1.19 jest wiele poprawek i ulepszeń. – BalusC
@BalusC Ok Mam zamiar przejrzeć różnice w wersji, również obie odpowiedzi są poprawne i działa dziękuję i Partlow, ale nie mogłem zdecydować, który z nich powinien być wybrany jako odpowiedź. Czy powinienem wybrać ze względu na zasadę "kto pierwszy, ten lepszy"? Ale serwer mówi, że odpowiedziałeś 1 minutę temu, ale kiedy ostatnio wyglądałem, było to, że najpierw odpowiedział Partlov. Czy to jest w tym samym czasie? –
Wystarczy wybrać ten, który jest dla Ciebie najbardziej pomocny.Odpowiedzi zamieszczone do tej pory nie zawierają dokładnie tych samych informacji. Jeśli chodzi o dokładną odpowiedź czasową, po prostu sprawdź etykietę "odpowiedzianego" znacznika czasu. Ale nie powinieneś brać tego pod uwagę przy wyborze odpowiedzi. To tylko symuluje FGITW. – BalusC