SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Javaで軽快に使える「軽量フレームワーク」特集

Javaで軽快に使える「軽量フレームワーク」特集
低い学習コストを重視した「Apache Click」 (1)

第4回


フォームを用意する

 とりあえず、Apache Clickを使ってページを作成表示させることはできました。今度は、フォームを使って、簡単な値をやり取りさせてみましょう。まずは、テンプレート側の修正からです。helo.htmを次のように修正します。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>Helo</title>
		<link rel="stylesheet" type="text/css" href="style.css"></link>
		$imports
	</head>
	<body>
		<h1>Hello Click!</h1>
		<p>$msg</p>
		<p>$form</p>
	</body>
</html>

 修正されているのはわずか2箇所だけです。まずヘッダー部分に「$imports」というものが埋め込まれています。これはApache Clickが用意するオブジェクトで、「コントロール」と呼ばれる部品を使う際に必要となるスタイルシートやスクリプトファイルをロードするための情報が含まれています。これを記述しておくことで、コントロールに必要なものがこのWebページに用意されます(コントロールについてはこの後で説明します)。

 もう1つは、ボディ部分に追加された「$form」というものです。こちらは、フォーム・コントロールのオブジェクトが保管されています。

 Apache Clickでフォームなどを利用する場合、テンプレートにフォーム関係のタグを記述しておくことはあまりありません。Apache Clickには、フォームなどのHTMLの部品となるクラスが用意されています。これを使うことで、テンプレート側にその部品を生成するためのHTMLタグが自動的に出力されるようになっています。これが「コントロール」と呼ばれるクラスです。

 Pageクラスでコントロールのインスタンスを用意し、これをPageクラスに設定しておくと、それをテンプレートに埋め込むことで、自動的にフォームがレンダリングされ表示されます。コントロールを利用することにより、フォームなどの値のチェックや前回入力された値の保持などが自動的に行われるようになります。

HeloPageクラスの修正

 では、Pageクラスを修正しましょう。HeloPage.javaを開き、ソースコードを次のように修正してください。

package jp.codezine.click;

import org.apache.click.Page;
import org.apache.click.control.*;

public class HeloPage extends Page {
	public Form form;
	private TextField input;
	private Submit submit;
	public String msg = "";

	public HeloPage (){
		form = new Form("form");
		input = new TextField("input","入力:");
		submit = new Submit("submit", "送信");
		form.add(input);
		form.add(submit);
	}

	@Override
	public void onInit(){
		msg = "お名前は?";
	}

	@Override
	public void onPost(){
		msg = "こんにちは、" + input.getValue() + "さん!";
	}
}

 できあがったら、プロジェクトを再公開してブラウザからhttp://localhost:8080/clickapp/にアクセスしてみましょう。入力フィールドのあるシンプルなフォームが表示されます。ここでテキストを入力し送信すると、メッセージが表示されます。ごく簡単なものですが、フォームを使った処理がされているのが分かります。

テキストを書いて送信すると、メッセージが表示される
テキストを書いて送信すると、メッセージが表示される

次のページ
コントロール利用の流れ

修正履歴

この記事は参考になりましたか?

Javaで軽快に使える「軽量フレームワーク」特集連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4555 2009/11/26 19:26

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー