0

管理対象Beanのプロパティに従ってレンダラー属性を制御するJSFページがあります。

<p:commandLink action="#{smartphoneBean.drillDown(smartphone.ldapuser,smartphone.productGrp)}"
                            rendered="#{!(smartphone.ldapuser.charAt(0) ge '0' and smartphone.ldapuser.charAt(0) le '9')}"  value="#{smartphone.ldapuser}">

コードを実行したら。値が任意の番号で始まるこのcommandLinkは引き続きレンダリングされます。

char値の整数表現を比較することを期待しています。

この問題について何か考えがありますか?

4

1 に答える 1

1

は、ELで。として解釈される(Unicodeコードポイント)をString#charAt(int)返します。は、としてではなく、として評価されます。したがって、比較は常に望ましくない結果をもたらします。charNumber'0'StringNumber

Unicodeコードポイントが480から57の文字。したがって、これは次のことを行う必要があります。9

rendered="#{!(smartphone.ldapuser.charAt(0) ge 48 and smartphone.ldapuser.charAt(0) le 57)}"  value="#{smartphone.ldapuser}">

参照:

于 2013-03-20T11:50:30.207 に答える