SHOEISHA iD

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

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

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

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

Javaで軽快に使える「軽量フレームワーク」特集
~本格的なRoRスタイルフレームワーク「Play!」(2)

第8回

データの作成と保存

 では、このMsgDataクラスを新たに作成するアクションを用意しましょう。ここでは「add」というアクションとして用意することにします。まず、テンプレートを作りましょう。「views」内の「Application」内に、新しく「add.html」というファイルを作成してください。そして次のように記述をします。

#{extends 'main.html' /}
#{set title:'Home' /}
<h1>メッセージの作成</h1>
${msg}
<form method="post" action="@{Application.add}">
<table>
	<tr><td>name:</td><td><input type="text" id="name" name="name" /></td></tr>
	<tr><td>message:</td><td><input type="text" id~"message" name="message" /></td></tr>
	<tr><td></td><td><input type="submit" value="送信" /></td></tr>
</table>
</form>

 今回は、nameとmessageという2つの入力フィールドを持ったフォームを用意しました。送信先には、action="@{Application.add}"を指定しています。これで、Applicationクラスにaddメソッドを用意すればいいことが分かります。

 これでテンプレートは完成ですが、このままだと表示があまりに寂しいので、スタイルシートを用意しておきましょう。Play!では、スタイルシートのような静的ファイルは「public」内に配置します。この中に「stylesheets」というフォルダがあり、そこに「main.css」というファイルが作成されています。これが標準で作成されるスタイルシートのファイルです。これを開き、次のように追記しておきます。

body {
	font-size:10pt;
	background-color:#F6FFFF;
	color:#003366;
}
h1 {
	font-size:12pt;
	background-color:#CCDDFF;
	padding: 3px;
}

 スタイルシートなので、内容はそれぞれで適当に調整してください。

 では、続いてコントローラーの作成です。Applicationクラスに、addメソッドを定義しましょう。

public static void add(String message,String name){
	String msg = "データを入力下さい。";
	if (request.method.equals("POST")) {
		MsgData data = new MsgData(message,name);
		data.save();
		msg = "データを保存しました。";
	}
	render(msg);
}
addアクションにアクセスするとフォームが表示される。テキストを記入して送信すれば、データとして保存される
addアクションにアクセスするとフォームが表示される。テキストを記入して送信すれば、データとして保存される

 これで完成です。http://localhost:9000/application/addにアクセスをすればフォームが表示され、ここに入力して送信すれば、データが保存されます(ただし、まだ表示はされません)。毎回アドレスを/application/addと入力しないといけないのはちょっと面倒なので、「routes」ファイルに次のように追記をしておきましょう。

* /{action} Application.{action}

 これで、Applicationクラスのアクションメソッドは、すべてルートにマッピングされます。今回のaddを呼び出したければ、http://localhost:9000/addで表示されるようになります。

addメソッドの流れ

 では、ここで行っている処理を見てみましょう。まず、メソッドではadd(String message,String name)というように引数が設定されています。アクションメソッドでは、送信されたパラメータが同名の変数として渡されるようになっていました。これで、フォームから送信されたmessagenameの値が引数で得られるようになります。

 request.method.equals("POST")POST送信されたかどうかをチェックし、trueであれば、次のようにしてMsgDataをデータベースに保存しています。

MsgData data = new MsgData(message,name);
data.save();

 説明するまでもないほどに簡単です。new MsgDataでインスタンスを作成し、その「save」メソッドを呼び出すだけです。これで、MsgDataインスタンスはデータベースに保管されてしまいます。これが、モデルクラスの威力です。モデルをデータベースに保存するための具体的なコードは、特に記述する必要はありません。

次のページ
データを表示する

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4751 2010/01/28 14:00

イベント

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

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

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

メールバックナンバー