JSF 2.0, Mojarra 2.0.1, PrimeFaces 3.4.1
Есть похожие вопросы, но мне нужно sth. еще; Функция javascript должна ждать метода поддержки bean, который заполняет переменную, которую нужно вытащить из js-функции. Я хочу сказать:
<p:commandLink action="#{statusBean.getStatuses}" oncomplete="afterLoad()"/>
Предполагая, что функция js просто получает значение и печатает его на экране.
function afterLoad() {
alert("#{statusBean.size}");
}
И вот день рождения:
@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
}
Таким образом, функция сообщает размер как 0, который является его начальным значением, а мы ожидаем увидеть 3.
Как это работает: Если я добавлю аннотацию @PostConstruct
к bean, голова наверняка получит правильный размер, потому что bean уже сконструирован до загрузки страницы. Но это означает избыточные процессы, стоимость которых требуется только после действия команды. Итак, как отложить функцию js? Любые идеи?