コレさえ知っていればJavaEE 6は大丈夫!

文字列を返すメソッドひとつのみの単純な書き方。

EJBの書き方

スコープとしてシングルトンが追加されてローカルインターフェースが省略可能に。

@Singleton
public class EjbBean {
    public String message() {
        return "EJBだよ!";
    }
}

JSFの書き方

リクエストスコープのManagedBean。

@ManagedBean(name="jsf")
@RequestScoped
public class JsfBean {
    public String message() {
        return "JSFだよ!" ;
    }
}

それを表示する方法。ELはゲッターセッターのみならずメソッドが使えるようになっている。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <head jsfc="h:head">
        <title>Test</title>
    </head>
    <body jsfc="h:body">
        #{jsf.message()}
    </body>
</html>

CDIの書き方

アノテーションも一切なしのこんなのでもCDIとして認識する。もうただのクラスにしか見えない。

public class CdiBean {
    public String message() {
        return "CDIだよ!";
    }
}


もちろん、スコープや名前付けをしてもよい。名前をつけるとELでアクセス可能に。

@Named("cdi")
@RequestScoped
public class CdiBean {
    public String message() {
        return "CDIだよ!";
    }
}

RequestScopedのパッケージがJSFとは違うのに注意。

ちなみにNetBeansだと

補完のほかにCTRL+クリックでHTMLのテンプレートからコードにジャンプできたり
http://shin.cside.com/diary/2011/0805-01.png


Javaのメソッドの使用箇所の検索するとテンプレートが見つかったりする。
http://shin.cside.com/diary/2011/0805-02.png
デフォでこの動作なので超便利。