【问题标题】:Cannot convert class org.omnifaces.el.ExpressionInspector$FinalBaseHolder to class java.lang.Integer无法将类 org.omnifaces.el.E​​xpressionInspector$FinalBaseHolder 转换为类 java.lang.Integer
【发布时间】:2023-03-04 13:22:01
【问题描述】:

我正在尝试为我的数据表中的每一行显示图像。我举了一个omnifaces的例子:

    <!-- Table with role list -->
<p:dataTable id="idRolesTable" value="#{staffMB.roleNestedList}"  var="row"
    paginatorAlwaysVisible="false" paginator="#{userSessionMB.getWebOption('paginator')}" 
    paginatorTemplate="#{userSessionMB.paginatorTemplate}" selection="#{staffMB.selectedRole}" selectionMode="single"
    paginatorPosition="#{userSessionMB.getWebOption('paginatorPosition')}" rowsPerPageTemplate="10,15,20,50"
    rows="10" emptyMessage="#{contentMB.msg.label_noItemsFound.value}" rowKey="#{row.pid}" widgetVar="roleTable"  
    tableStyle="table-layout: fixed;" filteredValue="#{staffMB.filteredRoleList}">


    <!-- Image -->
    <p:column id="slRoleImageColumn" headerText="#{contentMB.msg.label_id.value}" sortBy="#{row.roleId}" style="width:5%;"
        filterBy="#{row}" filterFunction="#{staffControllerMB.filterByRoleId}">
        <o:graphicImage value="#{imagesMB.getImage(row.ownerPerson.documentId)}" width="50"/>
    </p:column>

使用 ImageMB 类:

@ManagedBean(name = "imagesMB")
@ApplicationScoped
public class ImagesMB extends BaseControllerMB {

private static final long serialVersionUID = 7074295738016877803L;

@ManagedProperty(value = "#{documentManager}")
protected IDocumentManager documentManager = null;


public byte[] getImage(Integer docId) {
    PpbDocsDbBean image = documentManager.getDefaultDocument(docId);

    if (image == null)
        return null;

    Integer size = image.getPptDfiles().getDoclen();
    byte[] byteArrayDocument = image.getPptDfiles().getDocstore().getFixedByteArray(size);
    return byteArrayDocument;
}

遇到异常:

无法将 org.omnifaces.el.E​​xpressionInspector$FinalBaseHolder 类型的 org.omnifaces.el.E​​xpressionInspector$FinalBaseHolder@140f4b22 转换为 java.lang.Integer 类

jsf 2.2.12、Tomcat 8.0.14、jdk 8、omnifaces 2.1

【问题讨论】:

  • 我无法根据目前提供的相关信息重现该问题(但使用 Tomcat 8.0.26 而不是 8.0.14,因此可能会有所不同)。请按照stackoverflow.com/tags/jsf/info 中的要求创建一个 MCVE。就我而言,我使用了这个 MCVE:pastebin.com/wfD9hTPu
  • @BalusC 问题是我使用的是旧版本的 el-impl (jboss-el 2.0.1.GA) 而不是基于容器的。当我改变它时,问题就消失了。谢谢。

标签: jsf primefaces datatable omnifaces graphicimage


【解决方案1】:

根据 cmets,问题已由 OP 解决。

问题是我使用的是旧版本的 el-impl (jboss-el 2.0.1.GA) 而不是基于容器的。当我改变它时,问题就消失了。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多