Slim3とGAE/JでつくったTODOリストサービスをGoogle Codeで公開
以下のエントリーでTODOリストサービスをfirestorageで公開してたんだけど、色々コメントもらって結局Google Codeに公開することにしました。
Slim3で作ったTODOリストサービス - ありの日記
Google Code↓
http://code.google.com/p/hironemu-examples/
ちなみに、Google CodeのSVNには、前のエントリーでひがさんとnamaeさんにコメントをいただいた辺りを直した奴をアップしています。
ひがさんにはControllerクラスには便利な機能(asXxx())があるよと教えてもらったので、Controllerクラスをついでに調べてみました。
Controllerクラスの便利な機能
1. asXxx()メソッドによるリクエストの取得
例えば、文字列(String)の場合
String name = asString("user_name");
とすることでリクエストデータを取得できます。同様にBooleanの場合、
Boolean deleteFlg = asBoolean("delete_flg");
とすることで、リクエストの内容をBooleanに変換して取得してくれます。便利だったのがjava.util.Dateの場合で、以下の用になります。
Date dueDate = asDate("dueDate", "yyyy/MM/dd");
として、リクエストのStringの日付をパースしてDate型に変換してくれます。いずれも、org.slim3.controller.Controllerクラスで実装されているんですが、よく使う物だけに便利ですね。同じような感じで、asBigDecimal()やasByte()など色々あるので見てみるといいかも。
2. key()メソッド
これもよく使うであろうkeyの取得を簡略化するためのメソッドです。reques.getAttribute("key")でkeyを取得するようになってます。でも、keyが取得できない場合はIllegalStateExceptionが発生するので、keyがリクエストで飛んでこない場合は、Exceptionをキャッチするか別の方法(request.getAttribute("key")で直接とるとか)する必要がありますね。(※内部ではシンプルにreturn asString("key");とするだけになったようです。)
3. isDevelopment()メソッド
開発環境で動いてるときtrueが返ってきます。何かで使えそうw
4. download()メソッド
簡単にファイル名とファイル(バイト配列)を渡してOutputStreamにはき出します。この場合、Controllerのrun()メソッドの戻り値はnulにしておきます。試してないですが、slim3itのslim3.it.controller.upload.DownloadControllerにサンプルがありますw