カスタム検索

2009年4月13日月曜日

GrailsのServiceでServletContextを使う

もの凄いピンポイントネタですが。

GrailsのController上ではServletContextが勝手に注入されてます。
Service上では注入されてません、そしてSpringBeanでもないので注入も出来ません。
なんか簡単にとる方法ないのかなーと思ってググったら「コントローラーから渡したらええんちゃうん?」みたいな答えしかなくてしょんぼり。
サービスだけで使いたいのよ、BlazeDSとかWebサービスとかさ。

で、grailsApplicationは注入可能なので、こっからたどって取得します。

def grailsApplication

で grailsApplication を注入して、そこからparentのcontextを取得し(SpringのXmlWebApplicationContext)、そこからServletContextがとれます。

def sc=grailsApplication.getParentContext().getServletContext()

やったね :D

0 件のコメント: