使用嵌入式commandLink构造dataTable

时间:2011-05-15 21:08:15

标签: java xhtml jsf-2 primefaces

我正在尝试嵌入Primefaces commandLink并从Primefaces dataTable列中的链接调用动作侦听器。这不可能吗? “测试”onclick警报被触发,但它永远不会成为我的bean的方法。

<p:dataTable var="location" value="#{adminBean.locations}">  
        <p:column headerText="Options">  
            <p:commandLink value="delete" actionListener="#{admin.deleteLocation}" onclick="alert('test')"/>
        </p:column>    
    </p:dataTable>

bean代码:

public void deleteLocation(ActionEvent e){
   //delete logic here...
}

1 个答案:

答案 0 :(得分:4)

这是可能的。应该调用您的actionListener。请注意,p:commandButton默认使用ajax。因此,您应该使用update属性来定义要更新的组件。

但是,我不知道这是否会影响actionListener。您是否使用action而不是actionListener进行了尝试?

以下是我如何运作的示例:

<p:commandLink action="#{spc.selectPatient(item)}"
               ajax="false"
               value="Open"/>

bean方法如下所示:

 public String selectPatient(Patient p) {
    // do something
    // return some outcome
 }