JSF 2.0, Mojarra 2.0.1, PrimeFaces 3.4.1Получение резервного значения боба с Javascript
Есть подобные вопросы, но мне нужно что-н. еще; Функция javascript должна ждать метода бэк-компонента, который заполняет переменную, которую нужно вытащить из 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 уже сконструирован до загрузки страницы. Но это означает избыточные процессы, стоимость которых требуется только после действия команды. Итак, как отложить функцию js? Есть идеи?
Mojarra 2.0.1 древние. Уже более 3 лет. Рассмотрите возможность обновления. В текущей версии 2.1.19 есть много исправлений и исправлений. – BalusC
@BalusC Хорошо, я собираюсь рассмотреть различия в версии, также оба ответа правильны и работают спасибо и partlov, но я не мог решить, какой из них следует выбрать в качестве ответа. Должен ли я выбирать из-за первого поступления? Но сервер говорит, что вы ответили 1 мин назад, но когда я в последний раз смотрел, это говорило, что партов ответил первым. Это одно и то же время? –
Просто выберите тот, который вам наиболее полезен.Ответы, опубликованные до сих пор, не дают точно такой же информации. Что касается точного времени ответа, просто проверьте всплывающую подсказку «ответной» метки времени. Но вы не должны учитывать это при выборе ответа. Это только имитирует FGITW. – BalusC