CDIはじまったな

今まではJSFを利用していない限りJSPXHTMLの補完はきかなかった。

ツールでELの補完がきかないのはバグを生む原因になり最悪だと思っているのでJSFをよく利用していたが、これからはJSPだけでも安心して使えるようだ。そしてVelocityなどのテンプレートエンジンはますます立場が悪くなっていきますね。


というわけで以下例をのせてみます。

まず配置。依存ライブラリはありません。JSP1つとクラス1つです。beans.xmlは中身空っぽで。
http://shin.cside.com/diary/2010/0621-01.png
sun-web.xmlがありますが、これは無視してください。消しても良いです。


続いてクラスの中身。これですべてです。標準APICDIで記述しています。一般常識なので問題は無いですね。

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 + "回目の訪問です";
    }
}


補完で表示されますね。
http://shin.cside.com/diary/2010/0621-02.png
Modelが表示されていますが、こいつはメタアノテーションで@Namedが指定されているためでしょう。


もちろん、メソッドもどんどん絞られていきます。
http://shin.cside.com/diary/2010/0621-03.png

JSFもSpringもなにも入れてない状態でこれです。今まではJSP等で補完させるにはフレームワークが必須でした。それがもういりません。Strutsプラグインを作ってStrutsCDIの組み合わせもいいかもしれませんね。


CDI は じ ま っ た な