Datagrid Problema

Pessoal estou com um datagrid que deve mostrar 5 registros só que o problema que ele mostra os 5 registros vazios.

O metodos de pegar todos os registros está trazendo o model certinho, o problema é no acesso de cada coluna do data grid que está retornando null.
Acredito que seja um problema de modelagem de relacionamentos. O jsf popula a list certinha, mas na hora de pegar objeto a objeto está retornando null.

Alguém pode me ajudar?

coloca o seu codigo…

public DataModel getBandasDoOuvinte( ) throws SiteDaoException
	{
		InterfaceOuvinteDao iart   = objOuvinteDao;
		List<Artista>       lart   = iart.bandasDoOuvinte( session.getAttribute( m_sessionOuvinte ).toString( ) );
		Iterator<Artista>   iteart = lart.iterator( );
		
		while( iteart.hasNext( ) )
			setArtista( iteart.next( ) );
		
		model = new ListDataModel( lart );
		
		return model;
	}

Esse é o meu método que tras os dados para o datatable

<h:form>
						<rich:panel>
						<f:facet name = "header">
							<h:outputText value="Minhas Bandas" />
						</f:facet>	
						<rich:dataGrid value = "#{ouvinteController.bandasDoOuvinte}" var = "artista" 
						               columns = "3" elements = "9">
							<rich:panel>
								<f:facet name = "header">
									<h:outputText value = "#{ouvinteController.artista.strNome}" />
								</f:facet>
								<h:panelGrid columns = "1">
									<h:outputText value = "#{ouvinteController.artista.strNome}" />
								</h:panelGrid>
							</rich:panel>               
						</rich:dataGrid>
						</rich:panel>	
					</h:form>		

Esse é o datatable que deve ser preechido.

No há 5 registros. Ele mostra 5 registros mas somente com o nome vindo do último registro.

while( iteart.hasNext( ) )
			setArtista( iteart.next( ) );

É por causa desse while que ele está fazendo isso. ele roda até sair do while e seta somente o último valor, mas sem isso ele me traz todos os 5 registros do datatable null.

Como eu posso resolver isso?

up

tente assim:

<h:outputText value = "#{artista.strNome}" /> 

Para eu fazer isso eu preciso mapear no faces-config os meus beans…

Isso é uma boa prática? Ja que eu estou mapeando somente os meus controllers.

Não sei qual sua definição de bean e controller.
Dependendo da arquitetura eles são a mesma coisa.

Quando digo para você informar:

<h:outputText value = "#{artista.strNome}" />

O artista é um “apelido” de um registro da sua lista inserida dentro do DataModel que voce mesmo informou:

var = "artista"

Ex.:
Se voce inserir dentro do dataModel uma lista de clientes: List e o cliente possuir nome e telefone, você acessaria na página da seguinte forma:

<rich:dataGrid value = "#{meuBean.listaClientes}" var = "[b]cliente[/b]" columns = "3" elements = "9">  
   <rich:panel>  
      <f:facet name = "header">  
          <h:outputText value = "Nome do cliente" />  
      </f:facet>         
      <h:outputText value = "#{cliente.telefone}" />  
   </rich:panel>                 
</rich:dataGrid>  

Ah ta saquei o que vc estava querendo dizer.
Confundi o artista com o meu bean, pois é o mesmo nome por isso perguntei se é um aboa prática mapear no faces-config os beans…
Quando chegar em casa eu vou tentar fazer isso e respondo se deu certo.

Obrigado pela sua atenção Thiago :smiley:

Ta funcionando :smiley:

Valeu mesmo!