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