Exemple de champ de mot de passe de guichet
Tutoriel Wicket pour vous montrer comment créer 2 champs de mot de passe - «password» et «confirm password», attacher unstrong password validator et transmettre la valeur du mot de passe à la page suivante.
//Java import org.apache.wicket.markup.html.form.PasswordTextField; ... final PasswordTextField password = new PasswordTextField("password", Model.of("")); form.add(password); //HTML
1. Exemple de mot de passe de guichet
Une page utilisateur pour rendre deux champs de mot de passe. Attaché deux validateurs,PatternValidator
etEqualPasswordInputValidator
pour la vérification du mot de passe.
Fichier: UserPage.java
package com.example.user; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.PasswordTextField; import org.apache.wicket.markup.html.form.validation.EqualPasswordInputValidator; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.Model; import org.apache.wicket.validation.validator.PatternValidator; public class UserPage extends WebPage { //1 digit, 1 lower, 1 upper, 1 symbol "@#$%", from 6 to 20 private final String PASSWORD_PATTERN = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})"; public UserPage(final PageParameters parameters) { add(new FeedbackPanel("feedback")); //create a password field final PasswordTextField password = new PasswordTextField("password", Model.of("")); //for properties file password.setLabel(Model.of("Password")); final PasswordTextField cpassword = new PasswordTextField("cpassword", Model.of("")); cpassword.setLabel(Model.of("Confirm Password")); password.add(new PatternValidator(PASSWORD_PATTERN)); Form> form = new Form("userForm") { @Override protected void onSubmit() { //get the entered password and pass to next page PageParameters pageParameters = new PageParameters(); pageParameters.add("password", password.getModelObject()); setResponsePage(SuccessPage.class, pageParameters); } }; add(form); form.add(password); form.add(cpassword); form.add(new EqualPasswordInputValidator(password, cpassword)); } }
Fichier: UserPage.html
Wicket password Example
2. package.properties
Place la chaîne dans un «package.properties», afin qu'elle puisse être partagée entre les autres pages.
Fichier: package.properties
password.Required = ${label} is required cpassword.Required = ${label} is required password.PatternValidator = ${label} should contains at least 1 digit, ... (omitted) cpassword.EqualPasswordInputValidator = "${label} did not match!"
3. Demo
Démarrer et visiter -http://localhost:8080/WicketExamples/
Si le mot de passe ne correspond pas au modèle d'expression régulière:
Si le mot de passe et la confirmation du mot de passe ne correspondent pas:
Téléchargez-le -Wicket-password-example.zip (8 Ko)