2011-09-08 52 views
0

可能重复:
How can I pass a parameter to a commandLink inside a datatable?JSF数据表 - 特定记录

我有一个MySQL数据库。我只使用一个名为USERS的表,它具有列:用户名,用户名,名称,年龄。我通过显示它们:

<h:dataTable 
    var="my_user" 
    value="#{user.users}" 
    border="1" 
    styleClass="mainTable" 
    headerClass="heading" 
    rowClasses="evenRow, oddRow, " 
    id="rend"> 

    <h:column> 
     <f:facet name="header">#{lng.userId}</f:facet> 
     <h:outputText value="#{my_user.userId}" /> 
    </h:column> 
    <h:column> 
     <f:facet name="header">#{lng.username}</f:facet> 
     <h:outputText value="#{my_user.username}" /> 
    </h:column> 
    <h:column> 
     <f:facet name="header">#{lng.name}</f:facet> 
     <h:outputText value="#{my_user.name}" /> 
    </h:column> 
    <h:column> 
     <f:facet name="header">#{lng.age}</f:facet> 
     <h:outputText value="#{my_user.age}" /> 
    </h:column> 
    <h:column> 
     <f:facet name="header">#{lng.edit}</f:facet> 
     <h:graphicImage name="edit.png" library="images" styleClass="tableIcon"> 
      <f:ajax event="click" listener="#{someClass.edit}" render="rend"/> 
     </h:graphicImage> 
    </h:column> 
    <h:column> 
     <f:facet name="header">#{lng.del}</f:facet> 
     <h:graphicImage name="delete.png" library="images" styleClass="tableIcon"> 
      <f:ajax event="click" listener="#{someClass.delete}" render="rend"/> 
     </h:graphicImage> 
    </h:column> 
</h:dataTable> 

(这是国际化的,这就是为什么是#{LNG *})

我有2列与图标编辑和删除。我应该怎么做才能让特定行上的用户ID传递给我的函数进行删除和编辑?

+0

我正在检查它。 Thnks – nyxz

回答

0

很少有可能的方式是如何做到这一点

  • 在JSF 2.0方法表达式可以带参数

    <h:commandLink action="#{myBean.execute('hello')}"/> 
    
  • 要使用f:param标签和操作方法里面,你可以从参数中获取该值

    FaceContext.getCurrentInstance().getExternalContext().getRequestParametersMap() 
    
  • 要使用f:setPropertyActionListener标记