【问题标题】:PrimeFaces password validationPrimeFaces 密码验证
【发布时间】:2017-03-16 07:43:29
【问题描述】:

我无法理解这个 PrimeFaces 展示:

<h:panelGrid columns="2" id="matchGrid" cellpadding="5">                   
    <h:outputLabel for="pwd1" value="Password 1: *" />
    <p:password id="pwd1" value="#{passwordView.password5}" match="pwd2" label="Password 1" required="true" />

    <h:outputLabel for="pwd2" value="Password 2: *" />
    <p:password id="pwd2" value="#{passwordView.password5}" label="Password 2" required="true" />
</h:panelGrid>

特别不明白,为什么两个输入字段的值绑定都指向同一个属性password5

如果我按照这个例子,但添加一些密码强度验证

@StrongPassword
private String password5;

我收到有关此约束的重复验证消息(对于两个字段)。我希望这不是预期的行为

  • 要验证密码强度的第一个输入字段的内容和
  • 要验证的第二个输入字段的内容与第一个字段的内容是否相等

如何做到这一点?

【问题讨论】:

  • 我需要试试,可能是错字。如果我们为密码匹配保留不同的属性,它会起作用吗?

标签: validation jsf primefaces


【解决方案1】:

由于似乎不需要在视图 bean 中记录第二个输入,因此我没有为它添加另一个属性,只是删除了值绑定:

<p:password id="pwd2" label="Password 2" required="true" />

这给出了预期的结果。第二个字段的内容也会在验证错误时保留。

【讨论】:

    【解决方案2】:

    在 Primefaces &lt;p:password 组件中验证两个密码是否相等的最佳方法是使用属性 match,您可以将其放入主输入密码输入表单并指示您的第二个检查输入表单的 ID(另一个 ID用于匹配值的密码组件 - 来自 Primefaces 文档)。

    让我给你看一个例子:

    <h:panelGrid columns="2" id="matchGrid" cellpadding="5">
    
        <p:outputLabel for="usPassword" value="Password:"/>
    
        <p:password id="usPassword" value="#{authBean.password}"
                    required="true" placeholder="Password"
                    requiredMessage="Error: enter your password"
                    match="usPasswordConfirm"/>
    
        <p:outputLabel for="usPasswordConfirm" value="Repeat Password:"/>
    
        <p:password id="usPasswordConfirm" value="#{signupBacking.password}"
                    required="true" placeholder="Repeat Password"
                    requiredMessage="Error: repeat your password"/>
    </h:panelGrid>
    

    这里我使用了match="usPasswordConfirm",并且相同的 id 值具有第二个密码输入表单,因此 Primefaces 将检查两个键入的值是否匹配

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      • 2014-10-18
      相关资源
      最近更新 更多