【问题标题】:JSF commandbutton id inside datatable数据表中的 JSF 命令按钮 ID
【发布时间】:2011-01-15 13:14:38
【问题描述】:

如何在数据表中添加命令按钮?

<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");

但是一旦我将请求链接更改为命令按钮,friedId = null?知道如何使用命令按钮传递值

【问题讨论】:

    标签: jsf datatable


    【解决方案1】:

    将数据表值包装在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: 组件)一起工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 2017-10-04
      • 2014-07-21
      • 1970-01-01
      • 2015-07-14
      • 2010-10-13
      • 1970-01-01
      相关资源
      最近更新 更多