CDIはじまったな
今まではJSFを利用していない限りJSPやXHTMLの補完はきかなかった。
ツールでELの補完がきかないのはバグを生む原因になり最悪だと思っているのでJSFをよく利用していたが、これからはJSPだけでも安心して使えるようだ。そしてVelocityなどのテンプレートエンジンはますます立場が悪くなっていきますね。
というわけで以下例をのせてみます。
まず配置。依存ライブラリはありません。JSP1つとクラス1つです。beans.xmlは中身空っぽで。
sun-web.xmlがありますが、これは無視してください。消しても良いです。
続いてクラスの中身。これですべてです。標準APIのCDIで記述しています。一般常識なので問題は無いですね。
package hoge; import java.io.Serializable; import javax.enterprise.context.SessionScoped; import javax.inject.Named; @SessionScoped @Named("かうんた") public class AccessCounter implements Serializable{ int count = 0; public String getMessage(){ count++; return count + "回目の訪問です"; } }
補完で表示されますね。
Modelが表示されていますが、こいつはメタアノテーションで@Namedが指定されているためでしょう。
JSFもSpringもなにも入れてない状態でこれです。今まではJSP等で補完させるにはフレームワークが必須でした。それがもういりません。Strutsプラグインを作ってStrutsとCDIの組み合わせもいいかもしれませんね。
CDI は じ ま っ た な