プロジェクトを JSFContainer 2.2 から JSFContainer 2.3 にアップグレードしました
<p:selectManyListbox id="acl" value="#{controller.process.basisList}" >
<f:selectItems value="#{controller.filinglist}" />
</p:selectManyListbox>
ファイリングリストには、ob(1L, 'data1'); のようなクラス オブジェクトがあります。ジェネリック型 String を持つbasisList
JSFContainer 2.2、CDI 1.2、および EL 3.0 を使用する場合。Long データが baseList List に String として格納されており、正常に動作しています。以下のURLでこの概念を理解しています
ただし、JSFContainer 2.3、CDI 2.0、および EL 3.0 では。以下のエラーが発生しました
コードを実行すると
for(String i : basisList) {
System.out.println(i);
}
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String.
以下のコードを使用してデバッグします
for(Object i : basisList) {
System.out.println(i.getClass() + " > " + i);
}
取得している出力は以下のとおりです
class java.lang.Long > 3