テーブルを表す複合コンポーネントがあり、editable
(作成した) 属性に応じて、行を編集するためのリンクが表示される場合と表示されない場合があります。
編集リンクはタイプ<h:commandLink>
でありactionListener
、バッキング Bean のメソッドを指す があります。テーブルを編集可能にしたい場合は、編集を処理するためのバッキング Bean が<cc:attribute name="editBean"... />
属性のように提供されます。editable
テーブルを編集可能にする必要がない場合は、editable
属性をに設定false
し、linksrendered
属性も false に設定します。
私の問題は、属性を設定して設定しないと、editable
編集を処理する方法がないことを示すエラーが発生することです (たとえば、java.lang.String にはプロパティ xxxxx がありません)。false
editBean
リンクがまったくレンダリングされないように設定されているため、action/actionListener で指定された内容が無視されることを期待していました。私には、最初に属性をチェックしてから、rendered
それが に設定されているtrue
場合は、他の属性をチェックするのが論理的だと感じています。
だから、私の質問は次のとおりです。なぜこのように機能するのか、このシナリオを処理するエレガントな方法があるのですか?