‹f:setPropertyActionListener› Родитель не имеет типа ActionSource

Я хотел бы передать значение, когда я нажимаю на строку таблицы:

<h:outputLink id="lnkHidden" value="DatacenterProfile.html" style="text-decoration:none; color:white;">
    <f:setPropertyActionListener target="#{DatacentersController.selectedId}" value="#{item.componentStatsId}" />
</h:outputLink>

Я получаю эту ошибку:

‹f:setPropertyActionListener> Тип родителя не ActionSource, тип: javax.faces.component.html.HtmlOutputLink@aa25b91

Есть ли подходящий тег JSF, который можно использовать для замены <h:outputLink>?


person Peter Penzov    schedule 24.03.2013    source источник
comment
@BalusC Если правильно, мне нужно сделать POST-запрос.   -  person Peter Penzov    schedule 25.03.2013
comment
Какой тег JSF вы бы порекомендовали?   -  person Peter Penzov    schedule 25.03.2013
comment
Это отвечает на ваш xyproblem.info: Как могу ли я передать выбранную строку в commandLink внутри dataTable?   -  person BalusC    schedule 21.03.2017


Ответы (3)


f:setPropertyActionLister работает только для компонентов ActionSource, таких как h:commandLink и h:commandButton. Вы должны использовать один из них, если вы хотите сделать это таким образом. Смотрите также

person chkal    schedule 24.03.2013
comment
Любые предложения, которые я могу использовать? - person Peter Penzov; 24.03.2013
comment
Это зависит от того, хотите ли вы отображать ссылку или кнопку? :) - person chkal; 24.03.2013

Вы хотите, чтобы ваш URL-адрес (href) был сохранен, или вы просто хотите, чтобы он действовал как кнопка?

  1. Если вы хотите, чтобы URL-адрес был сохранен (очевидно, с его параметрами, чтобы вы могли открывать его в других вкладках и т. д.), просто используйте f:param вместо f:setPropertyActionLister.
  2. Если теряется отображение URL-адреса (содержательный URL-адрес не отображается), вы можете использовать, как сказал Чкал, commandButton или commndLink
person Laabidi Raissi    schedule 24.03.2013

В дополнение к ответу @BalusC. Я использовал что-то подобное в своем проекте.

<h:commandButton 
       id="" 
       styleClass="" 
       type="submit" 
       rendered="#{}" 
       value="#{}" 
       action="#{}"> 
       <f:setPropertyActionListener target="#{}" value="#{}" /> 
</h:commandButton>

Вы можете передавать/использовать атрибуты на основе ваших сценариев.

person Ram    schedule 08.03.2019