Wicketテキストボックスの例

Wicketテキストボックスの例

テキストボックスを作成し、検証し、テキストボックスの値を次のページに渡す方法を示すWicketチュートリアル。

//Java
import org.apache.wicket.markup.html.form.TextField;
...
final TextField username = 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 example

テキストボックスにエラーがない場合は、次のページに移動してテキストボックスの値を表示します。

wicket textbox

ダウンロード–Wicket-textbox-examples.zip(8KB)