SpringMVCのFlashScopeの話

0
Ryo Asai @ryoasai74

[Spring Framework][プログラミングTips]Spring MVCにフラッシュスコープの機能を簡単に実装する方法 http://d.hatena.ne.jp/ryoasai/20110402/1301750921

2011-04-02 22:28:40
bluepapa32 @bluepapa32

flash が使えるんだ... でも flash って入力エラー時の再描画に使うのがメインじゃないのかぁ?RT @ryoasai74: [Spring Framework][プログラミングTips]Spring MVCにフラッシュスコープの機能を簡単に実装する方法

2011-04-02 23:45:48
Ryo Asai @ryoasai74

@bluepapa32 PRGとの組み合わせというのは、flashスコープの使い方として一般的でなかったでしょうかね。自分の場合、入力エラーの時は会話コンテキストが持続していて普通にセッション中に保持できるのと通常リダイレクト不要のためflashの必要性は感じていませんでした。

2011-04-02 23:51:51
Ryo Asai @ryoasai74

RailsとかGrailsではflashスコープを普通どのように使っているのだろうか?JSF2やSeamのイメージとはまた流儀が違うのかな?

2011-04-02 23:53:30
close_yutori @kimukou2628

@bluepapa32 その単語であってましたっけ?<正式なら「flash scope」と書かんと勘違いしそう SpringMVCでValidationのエラー結果を入力画面で出すのに、オレオレでセッションで作って使っていた覚え有。RORの機能ですよね~ @ryoasai74

2011-04-02 23:53:35
Ryo Asai @ryoasai74

@kimukou_26 @bluepapa32 正しくはFlushですね。おそらく間違えました。ありがとうございます。

2011-04-02 23:55:13
bluepapa32 @bluepapa32

あれ? flash であってますよね。一瞬だけと言う意味で... RT @ryoasai74: @kimukou_26 @bluepapa32 正しくはFlushですね。おそらく間違えました。ありがとうございます。

2011-04-02 23:58:34
Ryo Asai @ryoasai74

@kimukou_26 @bluepapa32 いやいや、やはり、「flash scope」で良いようです。英単語のスペルは気をつけないといけませんね。

2011-04-02 23:58:42
close_yutori @kimukou2628

@ryoasai74 bluepapa32 http ://goo.gl/FhiXI Railsだとerbの方にflash という名前でセッションに入っていて名前をサブにして引っ張ってくる という使い方はしていました<オレオレも似たように作ってた覚えが

2011-04-03 00:00:47
Rubyist Bot @rubyist_bot

RT @kimukou_26: @ryoasai74 bluepapa32 http ://goo.gl/FhiXI Railsだとerbの方にflash という名前でセッションに入っていて名前をサブにして引っ張ってくる という使い方はしていました<オレオレも似たように作ってた覚えが

2011-04-03 00:01:11
Ryo Asai @ryoasai74

flashというのはカメラのフラッシュのことで一瞬の閃きを意味する言葉。一瞬データが残るからflashスコープと言うのかな。flushの方はバッファのフラッシュなどに使うけど赤面、感情のほとばしりという意味もあるのか。お互い混同しそう。 http://bit.ly/eduije

2011-04-03 00:02:19
close_yutori @kimukou2628

.@ryoasai74 @bluepapa32 Grailsだと http://www.grails.org/plugin/flash-helper というPluginがあるようです<flash scope が使える

2011-04-03 00:03:56
bluepapa32 @bluepapa32

@ryoasai74 Spring MVC は使ったことがないのでわかりませんが... 入力エラー時に入力画面にリダイレクトすることで入力時のアドレスのまま入力画面が表示できます。その際に flash スコープを使うと思うのですが...

2011-04-03 00:04:03
Ryo Asai @ryoasai74

@bluepapa32 画面遷移やURLの設計によるけれど入力エラーの場合はURLが変わらないので通常リダイレクトせずに、フォワードで戻ることが多いのかな。この場合requesetスコープで大丈夫なので、flashもsessionも不要ですね。

2011-04-03 00:09:07
bluepapa32 @bluepapa32

@ryoasai74 @kimukou_26 もしかして RESTful なWEBアプリケーションでない場合 入力エラー時に リダイレクトなんてしなくても良いのかな...

2011-04-03 00:09:33
Ryo Asai @ryoasai74

@bluepapa32 もともとSpringMVCの思想だとセッションをまったく使わないステートレスな処理を尊重していたので、入力エラーで戻る場合にリダイレクトという発想があまりなかったですね。他の人はどうしているのかな。

2011-04-03 00:10:52
bluepapa32 @bluepapa32

@ryoasai74 @kimukou_26 RESTful な WEBAPPで /save/1 にsubmit した際にエラーなった場合 /save/1 のまま入力画面に forward するとURIの一意が保てないので /edit/1 にリダイレクトして入力画面を表示します。

2011-04-03 00:15:02
close_yutori @kimukou2628

@ryoasai74 @bluepapa32 SpringMVCは、ryoasai74さんが書かれたブログのXML記述をアノテーションで書けるだけですので、HandlerInterceptorをインプリしたクラスにflash scopeの機能を持たせたBean持たせてるのは同じ

2011-04-03 00:16:53
bluepapa32 @bluepapa32

@ryoasai74 Spring MVC の概念とは ちょっとちがうのですね。きっと...

2011-04-03 00:20:30
Ryo Asai @ryoasai74

@bluepapa32 @kimukou_26 いまの議論とは別だけど、/save/1は本当の意味でRESTfulではないですね。RESTfulだとURLにはリソース名の名詞が来て、アクション動詞の部分はHTTPメソッドのPUTとかPOSTの差で表現しなくてはなりません。

2011-04-03 00:20:31
close_yutori @kimukou2628

@bluepapa32 @ryoasai74 HandlerInterceptorオーバーライドしたクラスで、postHandle()オーバーライドして、その上で Validationエラーでたらreturnで返せば先に進まないはずですよw

2011-04-03 00:22:04
このツイートは権利者によって削除されています。
Ryo Asai @ryoasai74

@bluepapa32 どうかな、あと、JSFやSeamの発想とも違うかもしれませんね。これらだと入力画面の表示と送信はPOSTバック処理と言ってビューが遷移せず、フォワードにすることが多いかな。リダイレクトとフォワードの使い分けについてはじっくり調査したいと思います。

2011-04-03 00:23:26