Boa noite pessoal, =)) imaginem a seguinte situação:
possui uma lista (lista A) de objetos.
Cada objeto da lista A possui também uma lista de objetos (B).
utilizo o ui:repeat para pecorrer os objetos da lista A, e dentro da ui:repeat cria uma tabela, utilizando os objetos da lista B.
Desta forma, são renderizadas varias tabelas (uma para cada objeto da lista A), com varias linhas (uma para cada objeto da lista B).
Para fazer a tabela estou utilizando PrimeFaces, p:dataTable utilizando o atributo selectionMode=“single” para permite seleçao único e o atributo selection atribui a linha selecionada a um objeto B no bean.
O problema é o seguinte: a idéia é selecionar apenas um linha (caso selecione uma linha em uma tabela e depois outra linha em outra tabela, a linha da primeira tabela deveria ser desmarcada), porem o comportamento que obtenho é selecionar uma linha por tabela.
Gostaria de resolver isso pois todas as tabelas usam o mesmo objeto para armazenar a linha selecionada. Desta forma, o valor correto sempre será o da última seleção.
Espero ter sido claro quanto ao meu problema. Abaixo segue o código da página para poder clarear mais o que eu falei.
[code]<?xml version='1.0' encoding='UTF-8' ?>
<ui:composition xmlns:ui=“http://java.sun.com/jsf/facelets”
template="./template.xhtml"
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:p=“http://primefaces.prime.com.tr/ui”
xmlns:f=“http://java.sun.com/jsf/core”>
<ui:define name="Titulo">
<h:outputText value="Você está em: Tarefas -> Lista de Tarefas" />
</ui:define>
<ui:define name="Conteudo">
<h:form>
<ui:repeat value="#{tarefasBean.estorias}" var="estoria">
<p:dataTable value="#{estoria.tarefas}" var="item" selectionMode="single" selection="#{tarefasBean.tarefaSelecionada}"
style="margin-top: 25px">
<f:facet name="header">
<h:outputText value="#{estoria.descricao}"/>
</f:facet>
<p:column headerText="Id">
<h:outputText value="#{item.idTarefa}"/>
</p:column>
<p:column headerText="Descrição">
<h:outputText value="#{item.descricao}"/>
</p:column>
<p:column headerText="Responsável">
<h:outputText value="#{item.responsavel}"/>
</p:column>
<p:column headerText="Situação">
<h:outputText value="#{item.situacao}"/>
</p:column>
</p:dataTable>
<hr></hr>
</ui:repeat>
</h:form>
</ui:define>
</ui:composition>[/code]
Abraços…