使用错误的dataType在tabView中的dataTable

时间:2014-10-28 08:33:08

标签: jsf primefaces datatable tabview

我正在尝试在tabView中显示dataTable。

目前我的xhtml代码如下所示:

    <p:tabView id="tabView" value="#{volumeController.shownSeries}" var="serie" cache="false">
        <p:tab title="#{serie.name}">
            <p:dataTable value="#{volumeController.findVolumesForSeries(serie.id)}" var="volume">
                    <p:column>
                        <h:outputText value="#{volume.volumeNumber}"/>
                    </p:column>
                </p:dataTable>
            </p:tab>
        </p:tabView>

所以,现在我的问题是,我收到以下错误:

javax.el.PropertyNotFoundException: /Volume/list.xhtml @22,89 value="#{volume.volumeNumber}": The class 'at.kirin.entity.Series' does not have the property 'volumeNumber'.

问题是,这是我在volumeController中的方法:

public List<Volume> findVolumesForSeries(long id) {
    List<Volume> v = volumeFacade.getVolumesForSeries(id);
    return v;
}

所以我在控制器中返回一个卷列表,但Glassfish将其解释为系列列表。 我试图用.toString()显示值,但它只显示我系列的.toString()的结果。

我的Volume-Entity有一个字段“VolumeNumber”,并且每个标签都会调用控制器中的方法。

我哪里出错或者是错误表面的错误? (我使用4.0)

问候 麒麟

1 个答案:

答案 0 :(得分:0)

所以,最后我发现了我的错误。

在我的JPA-Query中,我将整个列表作为List返回。不知怎的,它滑过我的方法中的所有赋值(参见上面的&#39; findVolumesForSeries&#39;)并且只是在用户界面中抛出错误。

这是我见过的最奇怪的错误,但对于发现此问题的其他人来说: 检查你的方法是否都返回正确的数据类型 - 不知何故,Java在这里混乱。