无法通过数据表值属性将参数从 JSF 发送到 Bean

Unable to send parameter from JSF to Bean through datatable value attribute

我有一个扩展数据table,它由后端的 Arraylist 填充,它有一个 id 作为主键。展开行时,必须在另一个 table 中搜索特定于 id 的行,并且必须显示所有行。当我试图将 id 作为 value 属性中的参数传递时,它给出了 class 强制转换异常。

这是 XHTML 代码

<h:form>
    <p:dataTable var="data"
        value="#{trackerList.trackerList}">
        <f:facet name="header">Summary</f:facet>
        <p:column style="width:16px">
            <p:rowToggler />
        </p:column>

        <p:column headerText="ID">
            <h:outputText value="#{data.id}" />
        </p:column>

        <p:column headerText="Status">
            <h:outputText value="#{data.status}" />
        </p:column>

        <p:column headerText="Created Time">
            <h:outputText value="#{data.createdTime}" />
        </p:column>

        <p:column headerText="Created By">
            <h:outputText value="#{data.createdby}" />
        </p:column>

        <p:column headerText="Updated By">
            <h:outputText value="#{data.updatedby}" />
        </p:column>

        <p:rowExpansion>
            <p:dataTable var="metadata" value="#{statusList.getScenarioStatusList(data.id)}">
                <p:column headerText="Requirements">
                    <h:outputText value="#{metadata.requirements}" />
                </p:column>

                <p:column headerText="Exam Name">
                    <h:outputText value="#{metadata.examName}" />
                </p:column>

                <p:column headerText="Status">
                    <h:outputText value="#{metadata.status}" />
                </p:column>

            </p:dataTable>
        </p:rowExpansion>
    </p:dataTable>
</h:form>

请帮忙。

我认为您需要在 p:datatable 标记内定义下面一行,并将 id 作为参数传递,而不是在子数据表中使用 #{statusList.getScenarioStatusList(data.id)}值=“#{yourBean.scenarioStatusList}”。在 loadLists(data.id) 方法中填充 scenarioStatusList。

<p:ajax event="rowToggle" listener="#{yourBean.loadLists(data.id)}"  />