Как передать выбранную строку в commandLink внутри dataTable или ui: repeat?

Я использую Primefaces в приложении JSF 2. У меня есть , и вместо выбора строк я хочу, чтобы пользователь мог напрямую выполнять различные действия с отдельными строками. Для этого, У меня есть несколько в последнем столбце.

Моя проблема: как передать идентификатор строки действию, запускаемому ссылкой на команду, чтобы я знал, с какой строкой действовать ? Я пробовал использовать :

<p:dataTable value="#{bean.items}" var="item">
    ...
    <p:column>
        <p:commandLink actionListener="#{bean.insert}" value="insert">
            <f:attribute name="id" value="#{item.id}" />
        </p:commandLink>
    </p:column>
</p:dataTable>

Но он всегда дает 0 - очевидно, переменная строки f недоступна, когда атрибут отображается (она работает, когда я использую фиксированное значение).

У кого-нибудь есть альтернативное решение?

97
задан BalusC 23 September 2017 в 14:10
поделиться