h: dataTable внутри ui: повторить, как указать идентификатор рендеринга из f: ajax? - PullRequest
4 голосов
/ 27 июля 2011

У меня есть:

<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 с данным идентификатором, может кто-нибудь объяснить мне, что не так в этом коде?Когда я проверил FireBug <table id="usersAssignedToProject">, но на стороне клиента был напечатан #{project.id} (до и внутри данных).

1 Ответ

3 голосов
/ 27 июля 2011

Это из-за идентификатора h: dataTable разрешается, когда строится дерево компонентов, но переменная project доступна только при ответе рендеринга.Попробуйте использовать c:forEach в этом случае вместо ui:repeat.

Подробнее об этом: http://www.ninthavenue.com.au/blog/c:foreach-vs-ui:repeat-in-facelets

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...