Play Framework 2.0 で送信したフォームの中身をコントローラー上で HttpRequest レベルで確認する

今回は、Play Framework 2.0.4 で、ビューで送信したフォームの中身を
コントローラー側で生のまま確認したいなーということで、その方法を探ってみました。

Play! には、便利なフォームテンプレートやヘルパーの機能がいろいろあるらしいですけど、
まずはベーシックに使ってみましょうということで、私自身は今のところ使用してません。

今利用しているのは単純な Form で Submit された内容を
コントローラーで Form クラスに bindFromRequest で格納する方法です。
こんな感じ。

[ ビュー : Form(Values) ] → [ コントローラー : Form(Values) → UserForm(Values) ]

UserForm クラスは受け取ったフォームの値を格納するクラスです。
あらかじめ、こんな風に作ってあります。

ビューで送信したフォームの内容は、コントローラー上でこんな風に書けば簡単に取得できます。

@Required アノテーションのおかげで、year や month に値が入っていないと
エラーとしてはじいてくれます。

さて、この手順で作ってった場合、
ビューで送信したフォームの内容を生のままで確認したいときなどは、ちょっと困ってしまいます。
bindFromRequest メソッドで form に値を格納した段階で、中で処理されちゃっているからです。
本当に form の値がコントローラーに渡っているのかどうか疑わしいときなどです。

そんな時は、デバッグ中にでもこの値をチェックしましょう

currentに入っているのは現在のHttp通信のContextの中身そのもの。
HttpRequestの中身、つまりリクエストの内容がほしい場合は、

に入ってます。

HttpRequestのヘッダなども取得できるので、送信元IPなんかも取れちゃいますねー。
いろんな処理に応用できそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この記事のトラックバック用URL