gpt4 book ai didi

jsf - java.lang.IllegalAccessException : Class javax. el.BeanELResolver 无法使用修饰符 "public"访问类 java.util.Arrays$ArrayList 的成员

转载 作者:行者123 更新时间:2023-12-04 19:58:40 25 4
gpt4 key购买 nike

我有这样一个 p:selectManyCheckbox 并且它工作正常:

<p:selectManyCheckbox id="groups" value="#{myBean.selectedGroups}">
<f:selectItems value="#{myBean.myGroups}" var="group" itemValue="#{group.id}" itemLabel="#{group.name}"/>
</p:selectManyCheckbox>

现在我必须将其转换为 Tree 组件(将 Group 父级添加到数据),但我的 PrimeFaces 版本为 3.4.1。不支持这样的功能。为了更好的定制,我决定用 html 和 <ui:repeat> 手动制作这个 selectManyCheckbox ):
<div id="j_idt25groups" class="ui-scrollpanel ui-scrollpanel-native ui-widget ui-widget-content ui-corner-all" style="height: 200px;">
<table id="groups" class="ui-selectmanycheckbox ui-widget">
<tbody>
<ui:repeat value="#{myBean.myGroups}" var="group" varStatus="status">
<tr>
<td>
<div class="ui-chkbox ui-widget">
<div class="ui-helper-hidden-accessible">
<ui:fragment rendered="#{myBean.selectedGroups.contains(group.id)}">
<input id="groups:#{status.index}" name="groups" type="checkbox" value="#{group.id}"
checked="checked">
</input>
</ui:fragment>
<ui:fragment rendered="#{not myBean.selectedGroups.contains(group.id)}">
<input id="groups:#{status.index}" name="groups" type="checkbox" value="#{group.id}">
</input>
</ui:fragment>
</div>
<div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default">
<span class="ui-chkbox-icon"></span>
</div>
</div>
</td>
<td>
<label for="groups:#{status.index}">#{group.name}</label>
</td>
</tr>
</ui:repeat>
</tbody>
</table>
</div>

现在我对这个代码有问题 #{prpBean.selectedGroups.contains(group.id)} :
java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class java.util.Arrays$ArrayList with modifiers "public"

有没有可能解决这个问题?
是否存在将这种结构转换为树的更简单方法?

最佳答案

contains() java.util.Arrays$ArrayList的方法Java 反射不能立即访问。这可能是正在使用的 EL 实现中的(极端情况)错误。它可能适用于不同的 EL 实现。可能值得向 EL 实现供应商报告错误,但事实就是如此。

创建时selectedGroups , 使用 new ArrayList()而不是 Arrays#asList()一切都应该很好。

关于jsf - java.lang.IllegalAccessException : Class javax. el.BeanELResolver 无法使用修饰符 "public"访问类 java.util.Arrays$ArrayList 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31874576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com