Exemple de champ de mot de passe Wicket

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

Si le mot de passe ne correspond pas au modèle d'expression régulière:

wicket pattern error

Si le mot de passe et la confirmation du mot de passe ne correspondent pas:

wicket password error

Téléchargez-le -Wicket-password-example.zip (8 Ko)