PhaseListener - это такая штука, которая позволяет отслеживать, на какой стадии находится обработка запроса и производить какие-нибудь изменения в контексте в связи с этими фазами. PhaseListener может быть привязан к какой-то одной фазе или ко всем сразу1). Это зависит от того, что будет возвращать его метод getPhaseId(). Для корректной работы PhaseListener'а необходимо, чтобы у него был публичный конструктор без аргументов.
PhaseListener'ы добавляются в приложение с помощью следующего фрагмента, который надо включить в faces-config.xml:
<faces-config> <lifecycle> <phase-listener>название класса с вашим PhaseListener'ом</phase-listener> ... </lifecycle> ... </faces-config>
Пример PhaseListener'а .