Array / JSTL

3 respostas
V

Boa Tarde galera…
Estou com um problema na hora de listar o conteudo de uma Collection (ArrayList) por meio de JSTL.
Recebo um parametro “ramais” contendo a collection com o nome e o ramal dos usuários. Conforme codigo abaixo…

<c:forEach var="req" items="${ramais}">         
<tr> 
<td height="18" class="txt_formLine">${req.con_DssNome}
</td>            
</tr>
 </c:forEach>

Mas ao executar o projeto, ele me apresenta o seguinte erro…

Unable to find a value for "con_DssNome" in object of class "java.lang.String" using operator "."

Sendo que o nome do campo está correto…
Mas, ao colocar somente “${req}” para que seja exibido, é exibido no browser algo assim: [Ljava.lang.Object;@aa559d

Se no “select” do hibernate, ao invéz de pegar os valores de nome e ramal, eu pegar somente nome ou somente o ramal, ambos são impressos corretamente, mas sem que se especifique o campo, somente colocando “${req}”…

Alguem sabe o que significa!!?
Lembrando que na Collection tenho o valor do nome e do ramal…

Desde já, obrigado…
[]'s !

3 Respostas

_fs

Você limitou o select do Hibernate?

select num, nome from Ramal

Se sim, ele retorna uma Collection de Object[]s, não de objetos Ramal.

Se precisa realmente limitar o select deve usar a api de Projections. Veja a documentação para exemplos.

V

Caro Lipe…
meu select é o seguinte…

select a.DssNome, a.TelefoneRamal from UserSist as a where a.TelefoneRamal like '98%'

No caso terei que usar a API de Projections mesmo…
Estarei testando…
mas… desde já obrigado…

[ ]'s

V

Fiz o seguinte código:

Iterator res = session.createQuery(
        "select a.DssNome, a.TelefoneRamal from UserSist as a where a.TelefoneRamal like '98%'")
        .list()
        .iterator();

while ( res.hasNext() ) {
    Object[] row = (Object[]) res.next();
    String nome = (String) row[0];
    String ramal = (String) row[1];

Mas como posso manipular os dados para enviar pra minha página!?
ou pra que retorne, uma collection por exemplo ao servlet…?

Criado 26 de abril de 2006
Ultima resposta 27 de abr. de 2006
Respostas 3
Participantes 2