Нет, вы можете добавить только два метода обратного вызова на стороне сервера:
<ice:commandButton action="#{bean.navigateTo}" actionListener="#{bean.doSomething}"/>
actionListener
должен указывать на открытый метод, который возвращает void
и принимает ActionEvent в качестве аргумента. Он обычно используется для любых задач, которые не связаны с какой-либо навигационной логикой, и имеет преимущество в том, чтобы предоставить вам старое и новое (= измененное) значение элемента управления. Это имеет особый смысл в элементах управления вводом, таких как флажки.
action
должен указывать на открытый метод, который возвращает String
без каких-либо аргументов. Метод сделает все, что необходимо для навигации - например, дополнительную проверку (если она не была обработана каким-либо базовым средством проверки JSF). Результат должен соответствовать правилам навигации от faces-config.xml
.
Это должно дать вам достаточно возможностей для обработки нескольких задач (что, как я полагаю, является причиной того, что вы создали несколько actionListener) в логике вашего сервера.
Кроме того, если вам нужно выполнить только некоторые задачи на стороне клиента, вы можете воспользоваться несколькими свойствами * JavaScript.
Ссылка: Пользовательские компоненты ICEfaces Taglib