FacesMessage listener

妖精的绣舞 提交于 2019-12-10 11:36:12

问题


What is the way for debugging JSF messages. Can I implement some listener and catch all error messages that JSF is about to display?


回答1:


You could with a PhaseListener hook on the beforePhase() of the 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.
    }

}

To get it to run, register it as follows in faces-config.xml:

<lifecycle>
    <phase-listener>com.example.MessagesListener</phase-listener>
</lifecycle>


来源:https://stackoverflow.com/questions/8413908/facesmessage-listener

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!