Wicketテキストボックスの例
テキストボックスを作成し、検証し、テキストボックスの値を次のページに渡す方法を示すWicketチュートリアル。
//Java import org.apache.wicket.markup.html.form.TextField; ... final TextFieldusername = new TextField ("username", Model.of("")); form.add(username); //HTML
1. Wicketテキストボックスの例
WicketのTextField
を介してテキストボックスをレンダリングするためのユーザーページ。
ファイル: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.TextField; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.Model; public class UserPage extends WebPage { public UserPage(final PageParameters parameters) { add(new FeedbackPanel("feedback")); final TextFieldusername = new TextField ("username", Model.of("")); username.setRequired(true); username.add(new UsernameValidator()); Form> form = new Form ("userForm") { @Override protected void onSubmit() { final String usernameValue = username.getModelObject(); PageParameters pageParameters = new PageParameters(); pageParameters.add("username", usernameValue); setResponsePage(SuccessPage.class, pageParameters); } }; add(form); form.add(username); } }
ファイル:UserPage.html
Wicket TextBox Example - UserPage.html
2. ユーザー名バリデータ
ユーザー名の長さが5〜15で、文字または記号a〜z、0〜9、アンダースコア、ハイフンであることを確認するユーザー名検証ツール。
ファイル:UsernameValidator.java
package com.example.user; import org.apache.wicket.validation.CompoundValidator; import org.apache.wicket.validation.validator.PatternValidator; import org.apache.wicket.validation.validator.StringValidator; public class UsernameValidator extends CompoundValidator{ private static final long serialVersionUID = 1L; public UsernameValidator() { add(StringValidator.lengthBetween(5, 15)); add(new PatternValidator("[a-z0-9_-]+")); } }
3. テキストボックスの値を表示する
UserPage.htmlからのテキストボックス値を表示するページ。
ファイル:SuccessPage.java
package com.example.user; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.WebPage; public class SuccessPage extends WebPage { public SuccessPage(final PageParameters parameters) { String username = ""; if(parameters.containsKey("username")){ username = parameters.getString("username"); } final Label result = new Label("result", "Username : " + username); add(result); } }
ファイル:SuccessPage.html
Wicket TextBox Example - SuccessPage.html
4. Demo
テキストボックスにエラーがある場合:
テキストボックスにエラーがない場合は、次のページに移動してテキストボックスの値を表示します。
ダウンロード–Wicket-textbox-examples.zip(8KB)