我写了PhaseListener
,我正在检查验证阶段。有没有办法可以在afterPhase()
侦听器方法中检查验证失败,验证阶段之后的下一阶段将是渲染响应阶段。
答案 0 :(得分:6)
如果您使用的是JSF 2.0,只需使用FacesContext#isValidationFailed()
进行检查即可。
if (context.isValidationFailed()) {
// Validation has failed.
}
顺便说一句,您也可以在视图中检查它,如下所示:
<h:panelGroup rendered="#{facesContext.validationFailed}">
<p>Validation has failed.</p>
</h:panelGroup>
答案 1 :(得分:3)
使用FacesContext中的最大错误严重性
Severity maximumSeverity = FacesContext.getCurrentInstance().getMaximumSeverity();
boolean validationFailed=false;
if (maximumSeverity != null
&& (maximumSeverity==FacesMessage.SEVERITY_ERROR || maximumSeverity
==FacesMessage.SEVERITY_FATAL)) {
validationFailed=true;
}
如果validationFailed的值为true,则会出现一些错误消息。
答案 2 :(得分:1)
如何使用FacesContext,您可以检查是否有任何排队的消息?例如
FacesContext context = FacesContext.getCurrentInstance();
Iterator<FacesMessage> messages = context.getMessages();
希望有所帮助。