JavaEE6ではまったことをいくつか
組み込みGlassfish3.0.1でJavaEE6を試していてはまったところをいくつかメモしておきます。
JSFのXHTMLからは@Namedアノテーションが付いたBeansにしかアクセス出来ない
JSFのXHTMLの中からアクセスするBeansには@Namedアノテーションが必須らしいです。
ということは、逆に言えばXHTMLからアクセスさせたくないBeansには@Namedを付けない方がいい。
全部のBeansにむやみやたらとアクセス出来たら依存関係がわけ分からなくなりそうだから、ここは大事かな。
でも@Namedは別の用途でも使うわけで、このアノテーションの有無だけでXHTMLからアクセスしているかどうかを判断するのは危険か。
JSFの動作にはjavax.faces.bean.ManagedBeanアノテーションが付いたクラスが1つあればよい
JSFのXHTMLからアクセスするBeansには必ず付けないといけないと思ってたけど、1つあれば充分らしい。
ただ、1つもないとダメ。1つだけ付けるのは気持ち悪いので、実戦では
- 全部に付ける
- ダミーを用意してそいつにだけ付ける
のどちらかの手法を取ると思います。
contains an unknown id 'xxx' というエラー
デザイン上の制約になるかもしれません。