Java Webフレームワーク Play!で遊んでみる - Introduction
Home — PlayframeworkというWebフレームワークがあるようです。
Home — Playframework
ちょっと遊んでみましょうか。
Play!の特徴
Page not found — Playframework
斜め読みしてみる。
Play!の5つのコンセプト
Page not found — Playframework
リクエストパラメータのバインド
HttpリクエストパラメータをJavaのメソッド引数に渡してくれるらしい。
/articles/archive?date=08/01/08&page=2
こんなURLから、以下のようなメソッドの引数にdate=08/01/08、page=2でメソッド呼び出ししてくれる。
public static void archive(Date date, Integer page) { List<Article> articles = Articles.fromArchive(date, page); render(articles); }
POJOへのバインドもできる。
<form action="/Directory/add" > Name: <input type="text" name="p.name" /> Age: <input type="text" name="p.age" /> </form>
こんな感じのフォームをサブミットしたときに、以下のようなメソッド引数のPersonクラスのプロパティにp.nameとかの入力値が設定される。
public static void add(Person p) { p.save(); }
異なるActionへのリダイレクト
あるActionから別のActionへforwardする場合は、単純なメソッド呼び出しでOK。
public static void show(Long id) { Article article = Article.findById(id); render(article); } public static void edit(Long id, String title) { Article article = Article.findById(id); article.title = title; article.save(); show(id); }
テンプレートへのパラメータ渡し
Article article = Article.findById(id); User user = User.getConnected(); render(article, user);
renderメソッドの引数に渡せばOK。
ファイルアップロード
<form action="@{Article.uploadPhoto}" method="POST" enctype="multipart/form-data"> <input type="text" name="title" /> <input type="file" id="photo" name="photo" /> <input type="submit" value="Send it ..." /> </form>
こんなフォームでファイルアップロードしたときは、
public static void uploadPhoto(String title, File photo) { ... }
こんな風にメソッド引数にアップロードされたFileオブジェクトが渡される。