c: forEach.items периодически вызывается - PullRequest
0 голосов
/ 07 апреля 2010

Окружающая среда: шов, Richfaces

В следующем фрагменте кода метод getUsers вызывается несколько раз, как этого избежать в моем приложении, чтобы он вызывался только один раз.

<c:forEach items="#{userHome.getUsers()}" var="_user">
</c:forEach>

Ответы [ 2 ]

4 голосов
/ 07 апреля 2010

Основное правило - избегать тегов <c: при использовании JSF (если вы не уверены, что они работают должным образом)

Здесь вам лучше заменить его на:

<a4j:repeat value="#{userHome.users}" var ="_user">
</a4j:repeat>

(или <ui:repeat> при использовании граней)

P.S. Я думаю, getUsers() - это EL-расширение JBoss, но я бы посоветовал не использовать его расширенные функции, если это действительно не нужно.

2 голосов
/ 07 апреля 2010

И ради любви к Богу, если вы заботитесь о производительности избегайте , используя платформу EntityHome / Query.Просто установите точку останова или вывод на getResultList() и посмотрите, сколько раз она вызывается.Теперь попробуйте то же самое думать с нормальным компонентом шва.Вы увидите значительное изменение (!)

...