Пример поля пароля 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)