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 TextField username = 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)