unfiltered-scalateをtomcatで動かす
結論
- くじけそう
- オススメできない
設定
動いたは動いた。
でもデフォルトだとダメです。
https://github.com/unfiltered/unfiltered-scalate/blob/0.5.3/src/main/scala/scalate.scala#L45-46
ここを変えたやつをimplicitに渡してあげます。
implicit val defaultTemplateDirs = new File(getClass.getResource("/templates").getPath) :: Nil
問題
unfilteredで使っているのはRenderContext、
https://github.com/unfiltered/unfiltered-scalate/blob/0.5.3/src/main/scala/scalate.scala#L42-43
でも自分が使いたかったのはServletRenderContext。
例えばビューからお手軽にServletContextの情報を取得するとかがServletRenderContextならできるけどRenderContextだとできない。
同じことを指摘してる人を見つけたのだけど、
「unfiltered別にそういうの目指してませんし」的スタンスでかわされちゃってる。
どうしても使いたければ勝手に自分で拡張するなり、自分でモジュール書けばっていうことになります。(どうしても使いたくなるのがUnfiltered。)
例えばServletRenderContextを使いたければ、unfiltered-scalate-servletを作るとかね.
忘れてはいけない
Unfiltered は Web Application Framework ではなく、HTTP Tool Kit なのさ。
おまけ情報
tomcatでcontext pathを除外してマッチさせたい、みたいなときはContextPathっていうExtractorがあるのでそれ使うとできます。
おまけ情報2
来週の #akskscala はunfilteredハンズオン + 言語仕様読書会その5です
http://atnd.org/events/25255