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



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

这是 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(},您只需执行 value= "#{yourBean.scenarioStatusList}"。 在loadLists(data.id(方法中填充scenarioStatusList。

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

最新更新