У меня проблема с получением элемента строки из таблицы в JSF.Моя цель - создать таблицу с элементами, взятыми из базы данных (сущность заказа), которая имеет некоторые атрибуты (имя, адрес, описание и т. Д.).Все это с помощью кнопки на всех отдельных рядах.
Задача кнопки состоит в том, чтобы удалить конкретный заказ из базы данных onClick, поэтому мне нужно получить id заказа в определенной строке.
Iнашел где-то на пути, как это сделать, используя 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 и удаляет ордер.