显示modalpanel条件验证JSF

时间:2012-03-21 10:28:27

标签: validation jsf conditional facescontext

毕竟,对不起我的英语。 我有一个显示modalPanel的问题。 如果表单的验证是正确的,我想显示一个modalPanel,如果验证失败则不显示它。

<h:form>
  <rich:calendar id="date" datePattern="dd-MM-yyyy" 
    value="#{Bean.startDate}" required="true"/>

  <a4j:commandButton value="Accept" action="#{Bean.Action}"
    onclick="if(#{empty facesContext.maximumSeverity}) #{rich:component('popUp')}.show();" />

</form>

maximumSeverity在这里不起作用,因为第一次加载页面时,maximumSeverity为空。

是否可以调用JSF的生命周期验证表单是否正确?

谢谢!

1 个答案:

答案 0 :(得分:3)

onclick在调用操作之前运行。您需要oncomplete代替。

如果您正在使用JSF 2.0,那么使用FacesContext#isValidationFailed()会更好,因为正常的INFO消息也会计入严重程度。

<a4j:commandButton value="Accept" action="#{Bean.Action}"
    oncomplete="if(#{not facesContext.validationFailed}) #{rich:component('popUp')}.show();" />