Ответ 1
Атрибут event
<f:ajax>
может содержать по крайней мере все поддерживаемые события DOM элемента HTML, который был сгенерирован рассматриваемым компонентом JSF. Легкий способ найти все это - проверить все атрибуты on*
входящего компонента JSF, представляющие интерес, в документации библиотеки тегов JSF, а затем удалить "on" префикс. Например, компонент <h:inputText>
, который отображает <input type="text">
, перечисляет следующие атрибуты on*
(из которых я уже удалил префикс "on", чтобы он в конечном итоге становится именем типа события DOM):
-
blur
-
change
-
click
-
dblclick
-
focus
-
keydown
-
keypress
-
keyup
-
mousedown
-
mousemove
-
mouseout
-
mouseover
-
mouseup
-
select
Кроме того, JSF имеет еще два имени специальных событий для EditableValueHolder
и ActionSource
компонентов, реальное событие DOM HTML DOM зависит от типа компонента:
-
valueChange
(будет отображаться какchange
на вводе текста/выбора и какclick
на радио/вкладках checkbox) -
action
(будет отображаться какclick
по командам/кнопкам)
Вышеуказанные два являются событиями по умолчанию для рассматриваемых компонентов.
В некоторых библиотеках компонентов JSF есть дополнительные персонализированные имена событий, которые обычно являются более специализированными видами событий valueChange
или action
, такими как PrimeFaces <p:ajax>
, который поддерживает среди других tabChange
, itemSelect
, itemUnselect
, dateSelect
, page
, sort
, filter
, close
и т.д. в зависимости от родительского компонента <p:xxx>
. Вы можете найти их все в подразделе "События Ajax Behavior Events" каждой главы компонента в руководстве пользователя PrimeFaces.