1

ビュースコープのBeanに裏打ちされたPrimeFacesCalendarコンポーネントのみを含むJSFページがあります。

<p:calendar value="#{calendarBean.today}" mode="inline" showOtherMonths="true" pages="1" binding="#{calendarBean.model}" />

このコンポーネント用に生成されたHTMLには、調整したいテーブルが含まれています。具体的には、対象日のtdタグの下にHTMLコードを追加して、このカレンダーにアイコンを動的に配置したいと思います。

CalendarBeanから、「アイコン付き」の日を表すオブジェクトのリストをサービスから取得できます。テーブルで変更する日を決定するには、このリストが必要です。バッキングBeanでHTMLDOMを取得しようとしましたが、その方法がわかりません。UIComponentツリー(バインディングプロパティを介して取得)には、生成されたHTMLではなく、JSFコンポーネントのみが含まれます。これが問題に取り組む方法でさえあるかどうか疑問に思い始めます。

私のグーグルスキルはここでは不十分なようです。誰か助けてもらえますか?

4

1 に答える 1

1

具体的な機能要件は完全には明確ではないため、このための正しい方法を提案することは困難ですが、JSF/PrimeFacesで生成されたHTMLのルックアンドフィールを変更する方法は一般にさまざまです。

  1. カスタムCSSを使用します。アイコンは、CSSの背景画像として簡単に設定できます。

  2. カスタムJSを使用します。JSは、HTMLDOMツリー全体に即座にアクセスできます。

  3. カスタムJSFレンダラーを使用します。PrimeFacesクラスを拡張し、それに応じてメソッドCalendarRendererをオーバーライドします。encodeXxx()

バッキングBeanは、ビュー(XHTMLファイル)とモデル(エンドユーザーに提示されるデータまたはエンドユーザーから送信されたデータをキャプチャするデータを保持するjavabeanエンティティクラス)の間のコントローラーであると想定されています。HTMLを操作することは想定されていません。

于 2012-11-12T13:23:47.933 に答える