如何在 primefaces 中强制使用强密码 p:password
How to force strong password in primefaces p:password
我正在创建注册表单。我想强制 p:password 是强大的。有什么方法可以验证 p:password 是强的吗?我想被视为 'strong' 与 p:password 的反馈相同的指标。
好像有no build-in solution for your requirement. Only I can see it in primefaces showcase密码反馈
<p:password id="pwd" value="#{passwordView.password3}" feedback="true"
weakLabel="Weak" goodLabel="Good" strongLabel="Strong"/>
或者您可以使用验证器
<p:password id="pwd" value="#{passwordView.password3}" feedback="true"
weakLabel="Weak" goodLabel="Good" strongLabel="Strong">
<f:validateLength minimum="4" maximum="101"/> // or
<f:validator validatorId="passwordValidator" />
</p:password>
验证class
@ManagedBean
@RequestScoped
@FacesValidator(value = "passwordValidator")
public class PasswordValidator implements Validator, Serializable {
@Override
public void validate(FacesContext fc, UIComponent uic, Object propertyValue) throws ValidatorException {
// your validation here
}
我的解决方案:
<h:form id="form" >
<p:password value="#{regitroCtrl.usuario.contrasenia}"
id="contrasena"
feedback="true"
required="true"
onblur="validarPassword()"/>
<p:message for="contrasena" id="contrasenaMsg" />
<p:commandButton value="Registrarse"
action="#{regitroCtrl.registrarse()}"
update="form"
onclick="return validarPassword()"/>
</h:form>
validarPassword 函数:
function validarPassword(){
var strength = PrimeFaces.widget.Password.prototype.testStrength($("#form\:contrasena").val());
if(strength <= 30){
$("#form\:contrasenaMsg").html('<span class="ui-message-error-icon"></span><span class="ui-message-error-detail">Por favor, ingresa una contraseña más fuerte</span>');
$("#form\:contrasena").addClass("ui-state-error");
return false;
}
else {
$("#form\:contrasenaMsg").html('');
$("#form\:contrasena").removeClass("ui-state-error");
return true;
}
}
我正在创建注册表单。我想强制 p:password 是强大的。有什么方法可以验证 p:password 是强的吗?我想被视为 'strong' 与 p:password 的反馈相同的指标。
好像有no build-in solution for your requirement. Only I can see it in primefaces showcase密码反馈
<p:password id="pwd" value="#{passwordView.password3}" feedback="true"
weakLabel="Weak" goodLabel="Good" strongLabel="Strong"/>
或者您可以使用验证器
<p:password id="pwd" value="#{passwordView.password3}" feedback="true"
weakLabel="Weak" goodLabel="Good" strongLabel="Strong">
<f:validateLength minimum="4" maximum="101"/> // or
<f:validator validatorId="passwordValidator" />
</p:password>
验证class
@ManagedBean
@RequestScoped
@FacesValidator(value = "passwordValidator")
public class PasswordValidator implements Validator, Serializable {
@Override
public void validate(FacesContext fc, UIComponent uic, Object propertyValue) throws ValidatorException {
// your validation here
}
我的解决方案:
<h:form id="form" >
<p:password value="#{regitroCtrl.usuario.contrasenia}"
id="contrasena"
feedback="true"
required="true"
onblur="validarPassword()"/>
<p:message for="contrasena" id="contrasenaMsg" />
<p:commandButton value="Registrarse"
action="#{regitroCtrl.registrarse()}"
update="form"
onclick="return validarPassword()"/>
</h:form>
validarPassword 函数:
function validarPassword(){
var strength = PrimeFaces.widget.Password.prototype.testStrength($("#form\:contrasena").val());
if(strength <= 30){
$("#form\:contrasenaMsg").html('<span class="ui-message-error-icon"></span><span class="ui-message-error-detail">Por favor, ingresa una contraseña más fuerte</span>');
$("#form\:contrasena").addClass("ui-state-error");
return false;
}
else {
$("#form\:contrasenaMsg").html('');
$("#form\:contrasena").removeClass("ui-state-error");
return true;
}
}