调试JSF消息的方法是什么? 我可以实现一些监听器并捕获JSF即将显示的所有错误消息吗?
答案 0 :(得分:6)
您可以在PhaseListener
的beforePhase()
上使用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>