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

更新日:2008年06月01日

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

編集部 All About 写真

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

文章:掌田 津耶乃(All About「Javaプログラミング」旧ガイド)

フォームを使う


前回、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 35
  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

編集部 All About

住まいには、人の個性がよく現れるもの。同じ空間をどのように使うかで、雰囲気も、快適さも大きく変わってくる。ここでは、「建築家と家を建てる」ガイド の川畑博哉氏が厳選した10軒を紹介し、建築家それぞれのこだわりのポイントを紹介しよう。建築のプロたちが考え出した、マネしたくなるアイデアが満載! さぁ、いますぐチェック!

人気Javaプログラミングランキング

Powered by 価格.com

デジタル関連コミュニティ

北欧好きが、愛用の北欧モノを見せ合うコミュニティ

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

ショッピングカタログ

All About ウェブマガジン

女性向け

雨が楽しくなる!レイングッズ15

男性向け

マネしたくなるアイデア住宅

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック

知識・経験を生かして、記事を書いてみませんか?