Я использую Primefaces в приложении JSF 2. У меня есть <p:dataTable>
, и вместо выбора строк я хочу, чтобы пользователь мог напрямую выполнять различные действия с отдельными строками. Для этого у меня есть несколько <p:commandLink>
s в последнем столбце.
Моя проблема: как передать идентификатор строки действию, запускаемому ссылкой на команду, чтобы я знал, с какой строкой действовать? Я пробовал использовать <f:attribute>
:
<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
недоступна при рендеринге атрибута (она работает, когда я использую фиксированное значение).
У кого-нибудь есть альтернативное решение?
источник
В JSF 1.2 это было сделано
<f:setPropertyActionListener>
(в командном компоненте). В JSF 2.0 (точнее EL 2.2, благодаря BalusC) это можно сделать так:action="${filterList.insert(f.id)}
источник
На моей странице просмотра:
поддерживающий боб
источник
Благодаря этому сайту Mkyong единственное решение, которое действительно помогло нам передать параметр, было это
с участием
Технически, вы не можете напрямую перейти к самому методу, а к методу
JSF request parameter map
.источник
#{param}
карты для последующих запросов, а не передавать произвольный параметр. Ваши вопросы и ответы описаны в stackoverflow.com/questions/17734230