この投稿で、JSFページとバッキングBeanの間のインターフェースのベストプラクティスに関する人々の意見を得ることができれば幸いです。
私が解決できないことの1つは、バッキングBeanの構造です。さらに、私はこの問題について良い記事を見つけたことはありません。
どのバッキングBeanにどのプロパティが属していますか?新しいBeanを作成してプロパティを追加するのではなく、特定のBeanにプロパティを追加するのが適切な場合はいつですか。単純なアプリケーションの場合、1つのBeanを別のBeanに挿入することに伴う複雑さを考慮して、ページ全体に対して単一のバッキングBeanを用意することは意味がありますか?バッキングBeanには実際のビジネスロジックが含まれている必要がありますか、それとも厳密にデータが含まれている必要がありますか?
これらの質問や出てくるかもしれない他の質問に自由に答えてください。
JSFページとバッキングBeanの間の結合を減らすために、JSFページがバッキングBeanのプロパティのプロパティにアクセスすることを決して許可しません。たとえば、私は次のようなことを決して許可しません。
<h:outputText value="#{myBean.anObject.anObjectProperty}" />
私はいつも次のようなものが必要です:
<h:outputText value="#{myBean.theObjectProperty}" />
バッキングBeanの値は次のとおりです。
public String getTheObjectProperty()
{
return anObject.getAnObjectProperty();
}
たとえば、コレクションをループ処理するときは、ラッパークラスを使用して、データテーブル内のオブジェクトにドリルダウンしないようにします。
一般的に、このアプローチは私にとって「正しい」と感じています。ビューとデータの間の結合を回避します。私が間違っていたら訂正してください。