h:在ui中的dataTable:重复,如何从f:ajax指定渲染ID?

时间:2011-07-27 13:13:09

标签: java jsf-2

我有:

<ui:repeat id="projectsTable" var="project" value="#{projectsBacking.projectList}">
  #{project.id}
  <h:dataTable id="usersAssignedToProject#{project.id}" var="appUser" value="#{projectsBacking.getAllUsersAssignedToProject(project)}">
    #{project.id}
    <h:column>
      <h:outputText value="#{appUser.getUsername()}"/>
    </h:column>
  </h:dataTable>
</ui:repeat>

使用<f:ajax>我无法使用给定的ID呈现h:dataTable,有人可以解释一下此代码中的错误吗?当我通过FireBug <table id="usersAssignedToProject">检查时,但是在客户端#{project.id}被打印(在数据表之前和之内)。

1 个答案:

答案 0 :(得分:3)

由于h的id:在构建组件树时解析了dataTable,但var project仅在渲染响应时可用。 在这种情况下,请尝试使用c:forEach而不是ui:repeat

有关此内容的更多信息: http://www.ninthavenue.com.au/blog/c:foreach-vs-ui:repeat-in-facelets