编辑用户数据时,我希望只有在密码不为空时动态启用密码验证。我试过的是使用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" />