datatable中的JSF命令按钮id

datatable中的JSF命令按钮id,jsf,datatable,Jsf,Datatable,如何在datatable中添加commandbutton <hx:dataTableEx value="#{searchData.searchFriends}" var="s"> <hx:columnEx> <f:facet name="header"> <h:outputText value="First Name" /> </f:facet> <hx:requestLink action

如何在datatable中添加commandbutton

<hx:dataTableEx value="#{searchData.searchFriends}" var="s">
   <hx:columnEx>
    <f:facet name="header">
     <h:outputText value="First Name" />
    </f:facet>
    <hx:requestLink action="#{pc_Search.doAddFriendAction}">
     <h:outputText value="Add as Friend" />
     <f:param name="friendId" value="#{s.memberId}" />
    </hx:requestLink>
   </hx:columnEx>
  </hx:dataTableEx>

但一旦我将requestlink更改为command按钮,friedId=null?知道如何使用命令按钮传递值吗?

将数据表值包装在一个文件中。然后您可以通过获取所选行

公共类Bean{
私人名单朋友;
私有数据模型friendsModel;
公共豆(){
friends=getItSomehow();
friendsModel=新列表数据模型(friends);
}
public void addAsFriend(){
Friend selectedFriend=(Friend)friendsModel.getRowData();
// ...
}
}


应与IBM Faces客户端框架(那些
hx:
组件)一起工作

String friendId = (String)getRequestParam().get("friendId");
public class Bean {
    private List<Friend> friends;
    private DataModel friendsModel;

    public Bean () {
        friends = getItSomehow();
        friendsModel = new ListDataModel(friends);
    }

    public void addAsFriend() {
        Friend selectedFriend = (Friend) friendsModel.getRowData();
        // ...
    }
}
<h:dataTable value="#{bean.friendsModel}" var="friend">
    <h:column>
        <h:commandButton value="Add as friend" action="#{bean.addAsFriend}" />
    </h:column>
</h:dataTable>