如何动态禁用bean验证?

时间:2012-09-13 17:03:58

标签: jsf-2 bean-validation

编辑用户数据时,我希望只有在密码不为空时动态启用密码验证。我试过的是使用ajax请求来呈现密码组件,以便从validateBean标签中禁用属性变得动态。

我的bean有一个布尔属性disabledValidation,当执行与ajax请求关联的侦听器时会更新。

我发现的第一个问题是,当用户写入密码组件时,将密码设置为InputHidden(由于ajax标记),并且他写的内容会丢失。

除了与ajax标记关联的侦听器永远不会被执行。

<h:inputSecret id="password" binding="#{password}" value="#{userBean.user.password}">
  <f:validateBean disabled="#{userBean.disabledValidation}">
    <f:ajax event="blur" render="@this" listener="#{userBean.enableValidationIfPasswordIsFilled}"/>
  </f:validateBean>
</h:inputSecret>
<h:message for="password" />

0 个答案:

没有答案