JSF - A4J действие запускается, но после рендеринга страницы срабатывает логика - PullRequest
0 голосов
/ 04 июня 2011

Использование richfaces 3.1.5 с myfaces / jsf и уведомление, когда я вызываю действие a4j, прежде чем оно выполнится, весь фейслет, на котором он находится, перерисовывается - я выполняю удаленную отладку, и когда я нажимаю на ссылку a4j, я сначалаПосмотрите, как вызывается мой phaseListener (что имеет смысл), но затем я также вижу всю логику в своих средствах получения bean-компонентов, которые находятся в фасете, содержащем ссылку действия a4j, затем, наконец, выполняемое действие и затем его повторные представления.Логика в некоторых методах получения является дорогой, и поэтому я не хочу, чтобы их вызывали без необходимости - я просто хочу щелкнуть действие -> вызвать действие -> повторно отобразить зоны, а не этот цикл щелчка действия -> повторно отобразить всю страницу ->вызовите действие -> повторно отобразить зоны, которые происходят сейчас.

Не знаю, имеет ли это значение, но мое действие a4j не сопоставлено с actionListener, а просто действием, которое вызывает метод String, возвращающий ноль.Спасибо за любую помощь.

1 Ответ

0 голосов
/ 05 июня 2011

Нет гарантии, что получатели будут вызываться только один раз в JSF. Вы должны убрать дорогостоящие вызовы из получателей или выполнить проверку, прежде чем вызывать логику в получателях. В общем, не рекомендуется помещать дорогостоящую логику в геттеры (в контексте JSF).

...