Javaプログラミング/Javaプログラミング関連情報

WicketでダイナミックなWeb開発!(後編)

後編では、Wicketに用意されているコンポーネントを組み合わせてフォームをデザインしましょう。

執筆者:掌田 津耶乃

フォームを使う


前回、Wicketを使ったWebアプリケーション開発の基本について簡単に説明をしました。今回は、さまざまなコンポーネントを実際に使ってみることにしましょう。まずは、フォームを使った送信の基本から作成してみましょう。

Wicketでは、フォームもコンポーネントとして用意されています。従って、Javaクラスではフォームのコンポーネントを作成し、そこに表示する部品類を組み込んでいきます。では、前回作成したPage1クラスを修正して、フォームを作成してみましょう。

package jp.allabout;

import java.io.Serializable;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.*;
import org.apache.wicket.model.PropertyModel;

public class Page1 extends WebPage {
  private FormModelBean bean;

  public Page1() {
    bean = new FormModelBean("テキストを入力してください。","");
    PropertyModel messageModel = new PropertyModel(bean, "msgStr");
    PropertyModel inputModel = new PropertyModel(bean, "inputStr");
    Form form = new Form("form");
    Label label = new Label("message", messageModel);
    this.add(label);
    TextField field = new TextField("field",inputModel);
    form.add(field);
    FormButton button = new FormButton(this,"button");
    form.add(button);
    this.add(form);
  }

  public FormModelBean getBean() {
    return bean;
  }

  public void setBean(FormModelBean bean) {
    this.bean = bean;
  }
}

class FormModelBean implements Serializable {
  private String msgStr;
  private String inputStr;
  
  FormModelBean(String msg,String input){
    this.msgStr = msg;
    this.inputStr = input;
  }
  
  public String getMsgStr() {
    return msgStr;
  }

  public void setMsgStr(String msgStr) {
    this.msgStr = msgStr;
  }

  public String getInputStr() {
    return inputStr;
  }

  public void setInputStr(String inputStr) {
    this.inputStr = inputStr;
  }
  
}

class FormButton extends Button {
  private static final long serialVersionUID = 1L;
  private Page1 page;
  
  public FormButton(Page1 page, String s){
    super(s);
    this.page = page;
  }
  
  public void onSubmit() {
    String result = "あなたは「" + page.getBean().getInputStr() +
        "」と書きました。";
    page.getBean().setMsgStr(result);
  }
}


今回は、ずいぶんと複雑な形になりましたね。フォームを利用する場合、送信された値の管理や、送信時の処理など、いろいろ考えなければいけない点が出てきます。こうした点について、ポイントをチェックしておきましょう。


  • 1
  • 2
  • 3
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます