Пример поля пароля Wicket
В руководстве Wicket показано, как создать 2 поля пароля - «password» и «confirm password», прикрепитьstrong password validator и передать значение пароля на следующую страницу.
//Java
import org.apache.wicket.markup.html.form.PasswordTextField;
...
final PasswordTextField password = new PasswordTextField("password", Model.of(""));
form.add(password);
//HTML
1. Пример пароля для калитки
Страница пользователя для отображения двух полей пароля. Прикреплены два валидатораPatternValidator иEqualPasswordInputValidator для проверки пароля.
Файл: 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));
}
}
Файл: UserPage.html
Wicket password Example
2. package.properties
Помещает строку в «package.properties», чтобы ее можно было использовать на других страницах.
Файл: 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
Начало и посещение -http://localhost:8080/WicketExamples/
Если пароль не соответствует шаблону регулярного выражения:

Если пароль и подтвердить пароль не совпадают:

Скачать -Wicket-password-example.zip (8KB)