JSF2でファイルダウンロード

JSF1.Xでファイルのダウンロードをするときに非常に面倒くさい感じがしていたのでJSF2でどうなったのか調べてみたら相変わらず面倒臭い感じ。

http://stackoverflow.com/questions/5498391/how-to-download-a-file-stored-in-a-database-with-jsf-2-0

ただ、ExternalContextに幾つかメソッドが追加されたのね。
元々はExternalContextからさらにHttpServletResponseを取り出してから操作してあげなければいけなかったのだけは解消された。

ExternalContext(JavaEE5)
ExternalContext(JavaEE6)

※ただし、setContextTypeメソッドがなかったりと明らかに足りてない感じはする。
setResponseContentTypeという名前で存在してました。
上の例だとsetResponseHeaderで設定してますが、こちらを使ったほうがよさそうですね。