フラッシュスコープの挙動が起動方法によって変わる

72 views
Skip to first unread message

Maki

unread,
Nov 15, 2014, 11:11:30 PM11/15/14
to pla...@googlegroups.com
初めまして、Makiと申します。

表題の件に質問させて頂きます。

下記の実装において、run で起動した時と、 start で起動した時で挙動が変わるのですが、
これは Play の仕様なのでしょうか?

仕様であるならば、実装方法を変更しようと思っていますが、
しかしながら、 run と start で挙動が変わるという事がいかがなものかと思いまして質問した次第です。

Playのバージョンは 2.3 になります。

リファレンスを確認しましたが、挙動が変わるという記述は見つけられませんでした。


## Java側
if (form.hasErrors()) {
    flash("error", "hogehoge");
    return badRequest(create.render(form));
} else {
    flash("success", "piyopiyo");
    return redirect("fuga/fuga");
}

## テンプレート側
@if(flash.containsKey("success")) {
    <p class="success alert alert-success">
        <strong>@flash.get("success")</strong>
    </p>
@if(flash.containsKey("error")) {
    <p class="error alert alert-error">
        <strong>@flash.get("error")</strong>
    </p>


具体的に再現手順を申し上げますと

## 再現手順
1. 登録アクションにおいて、Javaで hasErrors が true
2. flash に error をセット
3. return badRequest
4. テンプレートに error のメッセージが表示される

5. 2度目の登録アクションにおいて、Javaで hasErrors が false
6. flash に success をセット
7. return redirect
8. テンプレートに success のメッセージが表示される

9. start で起動の場合は、前回の error のメッセージも同時に表示される


以上です、お手数お掛けしますがよろしくお願い致します

Reply all
Reply to author
Forward
0 new messages