マネージド Bean に値のリストがあります。
値 120 70 30 60
ただし、要件は、これらの値を赤 (0%) と緑 (100%) の間の色にマップすることです。この変換された色の値を、EL(式言語)式である色属性を持つデータ駆動型コンポーネント(に似たものh:dataTable
)の列に提供する必要があります。
したがって、パーセンテージから色への変換には、ここに示す単純なアルゴリズムを使用できます。JavaScript ですが、Java で簡単に記述できます。このメソッドcolor()
を呼び出して、元の List(values) を持つマネージド Bean で宣言します。
Color color(double percentage){}
今私の問題は、最初にパーセンテージをこのメソッドに渡し、次に変換された Color 値を実行時にコンポーネントに戻す方法です。
例えば
<nameSpace:dataTable values="#{bean.Values} var="row" ...>
<nameSpace:column color="#{expression language syntax}" -->
したがって、この表現言語は次のことができるはずです。
最初にパーセンテージを計算します (したがって、値 30 の場合、パーセンテージは (( 30 /120 ) * 100)= 25 である必要があり、このパーセンテージを
color()
関数に渡します。次に、パーセンテージを以前に宣言され
color()
たメソッドに渡し、そのメソッドの戻り値を属性に設定しcolor
ます。
JSF2.0を使用しています。これはどのように達成できますか?