It's easy to implement a custom ValueChangeListener and use it in any EditableValueHolder Facelet component.

General Usage

Set type attribute with a fully qualified Java class name implementing ValueChangeListener to be applied when the parent EditableValueHolder value changes. Important note: there is usually confusion about ValueChangeListener and client-side events. ValueChangeListener are only server-side related events. For using client-side ones, just use any of the provided mechanism (f:ajax with event attribute, etc).

Source Code

Liferay Faces Alloy 4.1.1 + Liferay Faces Bridge Implementation 5.0.0 + Showcase Common 4.0.0 + Liferay Faces Util 3.4.1 + Mojarra 2.2.20