CommandButton излишне восстанавливает несколько других управляемых bean-компонентов, используемых в представлении - PullRequest
0 голосов
/ 24 декабря 2011

Я замечаю, что когда я использую h:commandButton для вызова метода actionlistener из управляемого бина, управляемые bean-компоненты, которые используются на текущей странице представления, восстанавливаются сами по себе. Теперь, поскольку мои данные из этих bean-компонентов уже были извлечены и добавлены в представление, нет необходимости повторно создавать экземпляры этих bean-компонентов, но JSF делает это.

Я использовал следующий код для вызова метода,

<h:commandButton value="Increment" actionListener="#{channelController.increment()}"/>

Я обнаружил, что другой управляемый bean-компонент UserChannelsList создается самостоятельно. Я не отправляю никаких данных в этот bean-компонент или использую какой-либо его метод, ни представлению не нужно извлекать какие-либо свойства из этого bean-компонента. Почему JSF создает все эти компоненты, используемые в представлении, самостоятельно?

EDIT

Это не связано с атрибутом actionListener, даже если я удаляю этот атрибут и просто нажимаю commandButton, тогда экземпляры управляемого компонента тоже создаются самостоятельно!

1 Ответ

0 голосов
/ 24 декабря 2011

Все управляемые bean-компоненты, на которые ссылается во всем представлении или как управляемое свойство один из bean-компонентов, на которые ссылаются в этом представлении, будут созданы, если еще не в текущей области. Поэтому, безусловно, ваше мнение должно было прямо или косвенно ссылаться на него. Если вы не можете сразу же найти его в своей базе кода, установите точку останова на конструкторе компонента и проверьте стек вызовов, чтобы определить инициатора.

Это не имеет ничего общего с использованием слушателей действия (что, кстати, выглядит странно в контексте, когда у вас нет реального метода action, читайте о Различия между action и actionListener ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...