如何在datatable中添加命令按钮?
<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>
要在后端获取数据
String friendId = (String)getRequestParam().get("friendId");
但是一旦我将requestlink更改为命令按钮,friedId = null?任何想法如何使用命令按钮
传递值答案 0 :(得分:2)
将数据表值包装在DataModel
中。然后,您可以按DataModel#getRowData()
获取所选行。
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>
应该与IBM Faces Client Framework(那些hx:
组件)一样好用。