SHOEISHA iD

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

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

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

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

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

第9回

PersonDataのコントローラー

 では、PersonDataを利用するためのコントローラーを作成しましょう。「controllers」フォルダに、新たに「Person.java」というファイルを用意します。ここにコントローラーを記述していきます。今回は、とりあえずデータの作成と一覧表示を行うaddindexという2つのアクションメソッドだけ用意することにしましょう。

package controllers;

import java.util.List;
import play.mvc.Controller;
import models.*;

public class Person extends Controller {

	public static void index(String name) {
		List<PersonData> datas = null;
		datas = PersonData.findAll();
		render(datas);
	}
	
	public static void add(String name,String mail){
		String msg = "データを入力下さい。";
		if (request.method.equals("POST")) {
			PersonData person = new PersonData(name,mail);
			person.save();
			msg = "データを保存しました。";
		}
		render(msg);
	}
}

 いずれも、既に説明したものなので分かるでしょう。indexの処理では、findAllで全データを取得し、それを引数に渡してrenderを呼び出します。addは、request.method.equals("POST")をチェックし、POSTで送信されたならば、PersonDataインスタンスを作成し、saveで保存をします。

PersonData用テンプレートの用意

 続いて、これらのアクション用テンプレートを作成します。「views」フォルダ内に、新たに「Person」というフォルダを用意します。そしてその中に「index.html」「add.html」という2つのファイルを作成します。

・index.htmlのリスト
#{extends 'main.html' /}
#{set title:'Home' /}
<h1>メッセージ表示</h1>
#{list items:datas, as:'data'}
    <li>${data.id}: ${data.name}(${data.mail})</li>
#{/list}

・add.htmlのリスト
#{extends 'main.html' /}
#{set title:'Home' /}
<h1>メッセージの作成</h1>
${msg}
<form method="post" action="@{Person.add}">
<table>
	<tr><td>name:</td><td><input type="text" id="name" name="name" /></td></tr>
	<tr><td>mail:</td><td><input type="text" id="mail" name="mail" /></td></tr>
	<tr><td></td><td><input type="submit" value="送信" /></td></tr>
</table>
</form>
PersonDataの追加。名前とメールアドレスを送信する
PersonDataの追加。名前とメールアドレスを送信する
登録されたPersonDataが一覧表示される
登録されたPersonDataが一覧表示される

 これでPersonDataを利用するためのファイルはできました。まずはhttp://localhost:9000/person/addにアクセスをし、データをいくつか登録してみましょう。そしてhttp://localhost:9000/person/indexに移動すると、登録したPersonDataが一覧で表示されます。

 index.htmlでは、indexアクションメソッドでPersonDataのListがrenderに渡されていましたから、これを利用して全データを表示しています。#{list items:datas, as:'data'}でdatasからオブジェクトを順に変数dataへと取り出して処理しています。ほとんど新しく登場した機能はないため、説明は不要でしょう。

次のページ
MsgDataのコントローラー

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4752 2010/02/04 14:00

イベント

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

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

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

メールバックナンバー