1

JSFメッセージをデバッグする方法は何ですか。リスナーを実装して、JSFが表示しようとしているすべてのエラーメッセージをキャッチできますか?

4

1 に答える 1

6

PhaseListenerフックを使用できます。beforePhase()PhaseId.RENDER_RESPONSE

例えば

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>
于 2011-12-07T11:48:02.127 に答える