【发布时间】:2019-07-21 02:17:51
【问题描述】:
我已将我的项目从 JSFContainer 2.2 升级到 JSFContainer 2.3
<p:selectManyListbox id="acl" value="#{controller.process.basisList}" >
<f:selectItems value="#{controller.filinglist}" />
</p:selectManyListbox>
filinglist 有像 ob(1L, 'data1'); 这样的类对象 泛型 String 的基础列表
使用 JSFContainer 2.2、CDI 1.2 和 EL 3.0 时。工作正常长数据已作为字符串存储在基础列表列表中。我在下面的 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
【问题讨论】:
-
请按照How to Ask 中的要求创建minimal reproducible example。我们不可能帮助处理这段代码。并且 java 标签吸引了可能不知道 JSF 或 EL 的人。并尝试使用普通的 JSF 对应物而不是 PrimeFaces。这行得通吗?
-
此链接错误。将 JSF 2.2 升级到 JSF 2.3 后,我的情况正好相反。 stackoverflow.com/questions/21446068/…
-
我明白发生了什么,但是请,请,请创建一个带有 backingbean 等的 minimal reproducible example...
标签: jsf converters jsf-2.3 selectmanycheckbox