SiNBLOG

140文字に入らないことを、極稀に書くBlog

Slim3 PRGパターン

2012-01-17

上記のBlogを見て、PRGパターンとはなんだろう?と思って調べてみた。


PRGパターンとは, POSTメソッドによるリクエストに対してリダイレクトを返し,
GETメソッドの応答として遷移先の画面を表示するというものです。

ということらしい。
因みに上記の文章は、ぐぐったらTeedaのページが出てきたので、そこから引用した。
Teeda - Extension - 概念 - PRGパターン


Slim3もサンプルを見ると、PRGパターンになっているように思う。
TweetControllerがpostした後、IndexControllerにredirectし、getを行う。

そして、それをサポートするような機能だが、自分が知る限りだと無い。
そんな機能があるフレームワークがあるのか!と思い調べたらRailsが出てきた。
Railsflashというのが、そんな感じの機能のようだ。
flashの使い方:Railsの基礎知識 - 久保清隆のブログ

Railsは使ったことが無いので、よく知らないのだが、上記のBlogによるとsessionに保存されているようだ。

ということは、こんな感じか!


import org.slim3.controller.Controller;

public abstract class AbstractController extends Controller {

protected T flashScope(CharSequence name) throws NullPointerException {
T t = super.sessionScope(name);
super.removeSessionScope(name);
return t;
}

protected void flashScope(CharSequence name, Object value)
throws NullPointerException {
super.sessionScope(name, value);
}
}

・・・。
まぁ、ただ単に呼び出した後、removeしているだけという・・・。
Railsflashは、もっと格好良いんだろうな!と思いつつ、自分にはこれが限界ですorz