无法验证具有空值的组件

时间:2015-05-30 18:14:55

标签: validation jsf

我已经为注册页面提供了这个.xhtml文件:

<h:inputSecret id="password"
               value="#{registraCliente.password}"
               required="true"
               binding="#{password}"
               requiredMessage="Password obbligatoria"
               validatorMessage="Password non valida">

    <f:validateRegex pattern="(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$/)" />
</h:inputSecret>
<h:message for="password" style="color:red" />

<h:inputSecret id="confermaPassword"
               required="true"
               value="#{registraCliente.confermaPassword}"
               requiredMessage="Devi inserire di nuovo la password">

    <f:validator validatorId="passwordValidator" />
    <f:attribute name="password" value="#{password}" />
</h:inputSecret>

<h:message for="confermaPassword" style="color:red" />

我希望如此:如果两个输入密码不同,则会显示错误。但如果它们相同,则允许注册。 我还添加了一个validateRegex标签来检查密码的“强度”,但那时我遇到了一些问题。 当我启动服务器并填写表单(在两个输入文本中写入相同的密码)时,它应该注册,但它不会,它保留在同一个xhtml页面上。

Eclipse的控制台给了我这个警告:

  

无法验证具有空值的组件:j_id_4:confermaPassword

它是怎么来的?

passwordValidator(下面评论中的链接)是一个实现Validator的bean,我从Balusc的博客文章中复制了它,我应该说是一个JSF大师:D

0 个答案:

没有答案