Icefaces: несколько actionListeners для командной кнопки - PullRequest
0 голосов
/ 24 августа 2009

Возможно ли иметь несколько actionListeners на командную кнопку?

Если нет, то есть ли способ обойти это?

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 27 августа 2009

Нет, вы можете добавить только два метода обратного вызова на стороне сервера:

  • actionListener и
  • action.

<ice:commandButton action="#{bean.navigateTo}" actionListener="#{bean.doSomething}"/>

actionListener должен указывать на открытый метод, который возвращает void и принимает ActionEvent в качестве аргумента. Он обычно используется для любых задач, которые не связаны с какой-либо навигационной логикой, и имеет преимущество в том, чтобы предоставить вам старое и новое (= измененное) значение элемента управления. Это имеет особый смысл в элементах управления вводом, таких как флажки.

action должен указывать на открытый метод, который возвращает String без каких-либо аргументов. Метод сделает все, что необходимо для навигации - например, дополнительную проверку (если она не была обработана каким-либо базовым средством проверки JSF). Результат должен соответствовать правилам навигации от faces-config.xml.

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

Кроме того, если вам нужно выполнить только некоторые задачи на стороне клиента, вы можете воспользоваться несколькими свойствами * JavaScript.

Ссылка: Пользовательские компоненты ICEfaces Taglib

...