Вызовите несколько методов бина одновременно - PullRequest
19 голосов
/ 16 февраля 2011

Есть ли способ вызвать несколько методов из различных компонентов поддержки в JSF?

У меня есть приложение, которое хранит информацию о пользователе.У меня есть несколько компонентов поддержки, которые разбиты на расписание, адрес, телефон и т. Д.

Когда приложение изначально загружает все работает, найдите, но, поскольку все мои представления имеют тип @ViewScope, списки расписания,адрес, телефон сохраняются, даже если отображается новый пользователь.

Мне нужно вручную установить нулевое расписание, адрес и списки телефонов, когда пользователь уходит от текущего человека, которого он просматривает IE. Мне нужно вызывать метод в каждом управляемом бине в один момент времени (Когда пользователь нажимает на ссылку

Можно ли вызывать несколько методов bean-компонентов по одному commandLink?

Ответы [ 3 ]

31 голосов
/ 18 февраля 2011
<h:commandLink action="#{jsfBean.submit}" value="execute multiple methods">
    <f:actionListener binding="#{jsfBean1.actionListener}"/>
    <f:actionListener binding="#{jsfBean2.actionListener}"/>
    <f:actionListener binding="#{jsfBean3.actionListener}"/>
</h:commandLink>

Используя приведенный выше код, у методов в bean-компонентах сигнатура ('default') равна actionListener(ActionEvent event)

, когда вы сначала нажимаете commandLink, будет выполнен метод submit.После этого все остальные actionListeners будут выполняться один за другим ... Надеюсь, это поможет;)

2 голосов
/ 16 февраля 2011

Вы можете иметь указатель commandLink на один метод, который сам вызывает все необходимые методы.

0 голосов
/ 25 октября 2017

Ответы здесь были близки к работе для меня, но также пришлось добавить скобки к методам в f: actionListener:

<h:commandLink action="#{jsfBean.submit}" value="execute multiple methods">
    <f:actionListener binding="#{jsfBean1.actionListener()}"/>
    <f:actionListener binding="#{jsfBean2.actionListener()}"/>
    <f:actionListener binding="#{jsfBean3.actionListener()}"/>
</h:commandLink>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...