java - h :dataTable inside ui:repeat, 如何从 f :ajax? 指定渲染 ID

标签 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>我无法呈现 h:dataTable使用给定的 ID,有人可以向我解释这段代码有什么问题吗?当我用 FireBug 检查时 <table id="usersAssignedToProject"> , 但在客户端 #{project.id}被打印(在数据表之前和内部)。

最佳答案

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

更多相关信息: https://rogerkeays.com/jsf-c-foreach-vs-ui-repeat

关于java - h :dataTable inside ui:repeat, 如何从 f :ajax? 指定渲染 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6844899/

相关文章:

jsf-2 - 仅获取服务中的 CDI 托管 bean

java - 如何在不使用 ImageJ 库的情况下在 java 中加载或打开 DICOM 图像文件?

jsf-2 - selectonemenu 中的所选项目始终为空

javascript - JSF 命令按钮都打开单独的窗口,但只能打开一个窗口

Java插件开发调试接口(interface)问题

jsf-2 - 链接的ViewScoped bean导致内存泄漏

java - 有条件地将 JSF 组件添加到翻译字符串中

java - 计算二叉树中的节点数

java - 鉴于我已经在我的 webapp 中使用了 Spring 框架,我应该使用改造 rest 客户端吗

java - java.util.concurrent.ExecutorService 是否应该像 java.sql.Connection 一样关闭?