Problemas em popular grid

Bom dia galera sangue bom!!

É o seguinte estou tentando popular um grid com uma lista, depurando o DAO, e o serviço, a lista é preenchida, mas o grid fica vazio, é como se não carregasse a lista.

Segue abaixo o método que usei no DAO e logo abaixo a chamada no grid.

DAO:

public List<TsRota> getRotas(Integer idCliente) {
		List<TsRota> retorno = new ArrayList<TsRota>();
		session = HibernateSession.getSession();

		String sql = "SELECT V.CONTROLECLIENTE,  V.PLACA, M.NOME, V.OBSCLIENTE," +
				" SR1.PLACA AS PLACA1, SR2.PLACA AS PLACA2, SR3.PLACA AS PLACA3," +
				" VI.DTHRINI, ORI.NOME AS ORIGEMNOME, ORI.UF AS ORIGEMUF," +
				" VI.DTHRFIM, DEST.NOME AS DESTNOME, DEST.UF AS DESTUF," +
				" (SELECT FIRST 1 TC.DESCRICAO FROM TSENTREGA ENT" +
				" LEFT JOIN TSTIPOCARGA TC ON (TC.IDTIPOCARGA = ENT.IDTIPOCARGA)" +
				" WHERE (ENT.IDENTREGA > 0) AND (ENT.IDVIAGEM = GR.IDVIAGEM)" +
				" ORDER BY ENT.ORDEM )," +
				" (SELECT FIRST 1 ENT.VALOR FROM TSENTREGA ENT" +
				" WHERE (ENT.IDENTREGA > 0) AND (ENT.IDVIAGEM = GR.IDVIAGEM) ORDER BY ENT.ORDEM ), VI.OBS" +
				" FROM TSVEICULO V" +
				" LEFT JOIN TSGRIDROTA GR ON (GR.IDVEICULO = V.IDVEICULO)" +
				" LEFT JOIN TSVIAGEM VI ON (VI.IDVIAGEM = GR.IDVIAGEM)" +
				" LEFT JOIN TSROTAPAD RP ON (RP.IDROTAPAD = GR.IDROTAPAD)" +
				" LEFT JOIN TSMOTORISTA M ON (M.IDMOTORISTA = V.IDMOTORISTA)" +
				" LEFT JOIN CIDADE ORI ON (ORI.CIDADE = RP.IDCIDORIGEM)" +
				" LEFT JOIN CIDADE DEST ON (DEST.CIDADE = RP.IDCIDDESTINO)" +
				" LEFT JOIN TSSEMIREBOQUE SR1 ON (SR1.IDSEMIREBOQUE = V.IDSEMIREBOQUE1)" +
				" LEFT JOIN TSSEMIREBOQUE SR2 ON (SR2.IDSEMIREBOQUE = V.IDSEMIREBOQUE2)" +
				" LEFT JOIN TSSEMIREBOQUE SR3 ON (SR3.IDSEMIREBOQUE = V.IDSEMIREBOQUE3)" +
				" WHERE (V.IDVEICULO > 0) AND (V.CLIENTE = " + idCliente + ")" +
				" AND (V.ATIVO <> 'N');";

		System.out.println(sql);
		
		try {
			PreparedStatement stmt = session.connection().prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			while (rs.next()) {
				
				TsRota rota= new TsRota();
				
				String semiReboquePlaca = "";
				semiReboquePlaca =(rs.getString("placa1")+ "/" + rs.getString("placa2")+ "/" + rs.getString("placa3"));
				String origem = rs.getString("origemNome")+"/"+rs.getString("origemUF");
				String destino = rs.getString("destNome")+"/"+rs.getString("destUF");
				
				rota.setControleCliente(rs.getString("CONTROLECLIENTE"));
				rota.setVeiculoPlaca(rs.getString("PLACA"));
				rota.setNomeMotorista(rs.getString("NOME"));
				rota.setSemiReboquePlaca(semiReboquePlaca);
				rota.setCidadeOrigem(origem);
				rota.setDataInic(rs.getString("DTHRINI"));
				rota.setCidadeDestino(destino);
				rota.setDataFim(rs.getString("DTHRFIM"));
				rota.setDescricao(rs.getString("DESCRICAO"));
				rota.setValor(rs.getString("VALOR"));
				rota.setObservacao(rs.getString("OBS"));
				rota.setObservacaoCliente(rs.getString("OBSCLIENTE"));

				retorno.add(rota);
				
			}
			stmt.close();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return retorno;
	}

Tela:


<body>
<% RotaInf rotaInf = new RotaInf(); %>
	<f:view>
		<h:form id="form">
			<div id="toolbar-home">
				<div class="migalha">
					<a href="../home/home.jsf">Inicio</a> > <b>Envio Simples</b>
				</div>
				<%@include file="../home/sair.jsp"%>
				<div class="clear"></div>
			</div>
			<div class="title" align="center">ENVIO DE ROTA SIMPLES</div>
			<div class="filterTable">
				<h:dataTable id="tabela" style="width: 100%;" rowClasses="row1, row2" var="list" value="#{rotaInf.tabela}">
					<t:column>
						<f:facet name="header">
						    <h:outputText value="CONTROLE" />
						</f:facet>
						    <h:outputText value="#{list.controleCliente}" />
					</t:column>
					<t:column>
						<f:facet name="header">
						    <h:outputText value="REBOQUE" />
						</f:facet>
						    <h:outputText value="#{list.veiculoPlaca}" />
					</t:column>
					<t:column>
						<f:facet name="header">
						    <h:outputText style="font-size:8;" value="MOTORISTA" />
						</f:facet>
						   <h:outputText value="#{list.nomeMotorista}" />
					</t:column>
					<t:column>
						<f:facet name="header">
						    <h:outputText value="SEMI-REBOQUE" />
						</f:facet>
						     <h:outputText value="#{list.semiReboquePlaca}" />
					</t:column>
					<t:column styleClass="rota">
						<f:facet name="header">
						    <h:outputText value="ORIGEM" />
						</f:facet>
						     <h:outputText value="#{list.cidadeOrigem}" />
					</t:column>
					<t:column styleClass="rota">
						<f:facet name="header">
						    <h:outputText value="PREV. INÍCIO" />
						</f:facet>
						     <h:outputText value="#{list.dataInic}" />
					</t:column>
					<t:column styleClass="rota">
						<f:facet name="header">
						    <h:outputText value="DESTINO" />
						</f:facet>
						     <h:outputText value="#{list.cidadeDestino}" />
					</t:column>
					<t:column styleClass="rota">
						<f:facet name="header">
						     <h:outputText value="PREV. FIM" />
						</f:facet>
						     <h:outputText value="#{list.dataFim}" />
					</t:column>
					<t:column styleClass="rota">
						<f:facet name="header">
						    <h:outputText value="CARGA" />
						</f:facet>
						     <h:outputText value="#{list.descricao}" />
					</t:column>
					<t:column styleClass="rota">
						<f:facet name="header">
						    <h:outputText value="VALOR" />
						</f:facet>
						     <h:outputText value="#{list.valor}" />
					</t:column>
					<t:column>
						<f:facet name="header">
						    <h:outputText value="OBS. ROTA" />
						</f:facet>
						     <h:outputText value="#{list.obs}" />
					</t:column>
					<t:column>
						<f:facet name="header">
						    <h:outputText value="OBS. INTERNA" />
						</f:facet>
						      <h:outputText value="#{list.observacaoCliente}" />
					</t:column>
				</h:dataTable>
			</div>
		</h:form>
	</f:view>
</body>

Se alguém puder ajudar aí… Desde já agradeço!!! :!:

<h:dataTable id=“tabela” style=“width: 100%;” rowClasses=“row1, row2” var=“list” value="#{rotaInf.tabela}">

no atributo value vc precisa passar o metodo que traz os itens do seu managedBean ou passar um atributo que contenha essa lista.

[quote=mauricioadl]<h:dataTable id=“tabela” style=“width: 100%;” rowClasses=“row1, row2” var=“list” value="#{rotaInf.tabela}">

no atributo value vc precisa passar o metodo que traz os itens do seu managedBean ou passar um atributo que contenha essa lista.

[/quote]

Opa… o Atributo tabela contem a lista. Pelo padrão das outras telas teria q funcionar, mas não aparece nada…

mas e o objeto rotaInf ele deve ser o ManagedBean e nao um atributo criado via scriptlet.

Entendi, mas não sei como fazer, poderia me ajudar?

vc precisa de uma classe anotada como managedBean, dentro dela vc vai ter um metodo que retorna uma lista de itens para seu datatable.

@ManagedBean
class MinhaClasse {

public List&lt;MeuItem&gt; getItens(){
// regra para montar a lista
}
}

sendo assim, no seu datatable vc vai colocar dataTable var=“item” value="#{minhaClasse.itens}"

[]'s

[quote=mauricioadl]vc precisa de uma classe anotada como managedBean, dentro dela vc vai ter um metodo que retorna uma lista de itens para seu datatable.

@ManagedBean
class MinhaClasse {

public List&lt;MeuItem&gt; getItens(){
// regra para montar a lista
}
}

sendo assim, no seu datatable vc vai colocar dataTable var=“item” value="#{minhaClasse.itens}"

[]'s[/quote]

Blza pura e em cada coluna do Datatable onde fica o value eu chamo assim?

<h:outputText value="#{item.veiculoPlaca}" />

isso mesmo!

:roll: Não funcionou!!