我已经编写了一个PhaseListener,在其中我正在检查验证阶段。有没有办法在侦听器的afterPhase()方法中检查验证已经失败,验证阶段之后的下一个阶段将是Render Response阶段。
发布于 2012-02-03 15:46:12
使用FacesContext怎么样,你能检查是否有入队的消息吗?例如:
FacesContext context = FacesContext.getCurrentInstance();
Iterator<FacesMessage> messages = context.getMessages();希望这能有所帮助。
发布于 2012-02-03 20:58:03
如果您使用的是JSF2.0,只需使用FacesContext#isValidationFailed()进行检查。
if (context.isValidationFailed()) {
// Validation has failed.
}顺便说一下,您还可以在视图端检查它,如下所示:
<h:panelGroup rendered="#{facesContext.validationFailed}">
<p>Validation has failed.</p>
</h:panelGroup>发布于 2012-02-03 16:05:43
对FacesContext中的错误使用最大严重性
Severity maximumSeverity = FacesContext.getCurrentInstance().getMaximumSeverity();
boolean validationFailed=false;
if (maximumSeverity != null
&& (maximumSeverity==FacesMessage.SEVERITY_ERROR || maximumSeverity
==FacesMessage.SEVERITY_FATAL)) {
validationFailed=true;
}如果validationFailed的值为true,则会出现一些错误消息。
https://stackoverflow.com/questions/9125238
复制相似问题