Slim3でブロブストアを使おうとすると、想定外の挙動になることがある
Slim3でブロブストアを使おうとした時のこと。
Slim3がブロブストアをカバーしていないような気もするけれど、
ブロブストアも使いたいんだよという時に、無理やり使う場合は注意。
(もしかしたら使い方がイレギュラーだったのかもしれないけど…。)
ブロブストアは、アップロードで指定したサーブレットを通さずに直接ブロブストアにファイルを送ります。
ファイルをアップロードする際に指定したformのaction先には、
ブロブストアにアップロードした後、アップロード情報を返します。
×JSP→Servlet→ブロブストア
○JSP→ブロブストア→Servlet
という流れ。
で、Slim3だと何がまずいかというと、
ブロブストア→Servlet
でServletの処理に移った時に、リクエストパラメータを使う場合。
通常リクエストパラメータを取得する場合は、
String hogehoge = request.getParameter("hogehoge");
としますが、
Slim3では
String hogehoge = asString("hogehoge");
とします。
しかし、ブロブストアアップロード後の場合、
Slim3の
String hogehoge = asString("hogehoge");
という方法でパラメータを取得しようとすると、
どうやら取得内容がnullになる模様です。
同時に、Validatorも使えません。
(requiredを設定していると、必須エラーになります。)
細かい解析はしていないので、
原因はわかりませんが、気を付けて下さい。
ちなみに、
String hogehoge = request.getParameter("hogehoge");
では取得可能でした。
ローカルテスト環境では再現しないので、
確認する場合はデプロイした後が良いです。