FacesMessage监听器

时间:2011-12-07 10:34:46

标签: jsf openfaces

调试JSF消息的方法是什么? 我可以实现一些监听器并捕获JSF即将显示的所有错误消息吗?

1 个答案:

答案 0 :(得分:6)

您可以在PhaseListenerbeforePhase()上使用PhaseId.RENDER_RESPONSE挂钩。

E.g。

public class MessagesListener implements PhaseListener {

    @Override
    public PhaseId getPhaseId() {
        return PhaseId.RENDER_RESPONSE;
    }

    @Override
    public void beforePhase(PhaseEvent event) {
        Iterator<FacesMessage> messageIterator = event.getFacesContext().getMessages();

        while (messageIterator.hasNext()) {
            FacesMessage message = messageIterator.next();
            // ...
        }
    }

    @Override
    public void afterPhase(PhaseEvent event) {
        // NOOP.
    }

}

要使其运行,请在faces-config.xml

中按如下方式注册
<lifecycle>
    <phase-listener>com.example.MessagesListener</phase-listener>
</lifecycle>