<f:setpropertyactionlistener> Parent不是ActionSource类型</f:setpropertyactionlistener>

时间:2013-03-24 13:44:45

标签: jsf parent setpropertyactionlistener

我想在点击表格行时传递值:

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

我收到此错误:

  

&LT; F:setPropertyActionListener&GT; Parent不是ActionSource类型,类型为:javax.faces.component.html.HtmlOutputLink@aa25b91

是否有适当的JSF标记可用于替换<h:outputLink>

3 个答案:

答案 0 :(得分:5)

f:setPropertyActionLister仅适用于h:commandLinkh:commandButtonActionSource个组件。如果你想这样做,你应该使用其中之一。另见

答案 1 :(得分:1)

您希望保留您的网址(href),还是只希望它像按钮一样?

  1. 如果您希望保留该网址(显然是其params,因此您可以在其他标签中打开它等等),只需使用f:param代替f:setPropertyActionLister
  2. 如果丢失网址显示(没有显示有意义的网址),您可以像Chkal所说的那样使用commandButtoncommndLink

答案 2 :(得分:0)

除了@BalusC答案。我在项目中使用了类似的方法。

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

您可以根据情况传递/使用属性。