从JSF中的表获取行元素时遇到问题。我的目标是创建一个表,其中的元素取自具有某些属性(名称,地址,描述等)的数据库(订单实体)。所有这些都在所有单行上都有一个按钮。
按钮的任务是从数据库onClick中删除特定订单,因此我需要在特定行上获取订单的 id 。
我在使用setPropertyActionListener()
的过程中发现了某个地方。问题在于它仅适用于表的第一个元素。如果我单击分配给另一行的按钮(但不是首先单击),则订单的selectedId为空(未分配)。
我将非常感谢您的帮助。
<h:form>
<h:dataTable id="orders" value="#{orderController.otherOrders}" var="order" border="2"
cellspacing="1" cellpadding="1">
<h:column>
<c:facet name="header">Name</c:facet>
#{order.name}
</h:column>
<h:column>
<c:facet name="header">Address</c:facet>
#{order.address}
</h:column>
<h:column>
<c:facet name="header">Description</c:facet>
#{order.description}
</h:column>
<h:column>
<c:facet name="header"> </c:facet>
<h:form>
<h:commandButton action="#{orderController.selectOrder}" value="delete">
<f:setPropertyActionListener target="#{orderController.selectedOrderId}" value="#{order.id}" />
</h:commandButton>
</h:form>
</h:column>
</h:dataTable>
</h:form>
在orderController中,我具有函数selectOrder(),该函数采用实际的selectedOrderId并删除订单。