Duvida com Expression Language

3 respostas
jandiro

Galera, estou desenvolvendo um sistema e utilizando EL.
Possuo uma classe que joga a lista que preciso no request via setAttribute: request.setAttribute(“blocos”,lista);.
na minha página JSP eu recupero esta lista da seguinte forma:
<c:forEach var=“bloco” items="${dao.lista}">

${bloco.codigo}
${bloco.situacao}
</c:forEach>
Desta forma consigo fazer um getCodigo e um getSituacao, esta funcionando.
O problema é que nesta lista tenho um Objeto do tipo Fornecedor, e este tem um getId para recuperar o id do Fornecedor.
Mas não sei como recuperar o id do Fornecedor via getId.
Alguem sabe como posso fazer:
Como ele está dentro de bloco, preciso de algo como ${bloco.fornecedor.id}, porem isto não funciona pois se perde com os pontos.
Agradeço desde já
Jandiro

3 Respostas

M

Uma maneira de fazer (não sei se é elegante), é subir um nivel o seu método. Assim, se voce tem um objeto1 que possui um atributo do tipo Fornecedor, voce pode colocar um metodo no proprio objeto 1 que retorna o id do Fornecedor associado.

Como disse, não é muito elegante, mas funciona.

skill_ufmt

Não sei se funciona mas,
já tentou atribuir isso ${bloco.fornecedor} a uma variavel diferente e a partir dela pegar o id?

c:set var=“forn” value="${bloco.fornecedor}"
c:out value="${forn.id}"

Nem lembro mais de tags hehe mas a idéia da pra captar, né?

jandiro

Galera, desculpem minha falha. Eu estava errado ao afirmar que ${bloco.fornecedor.id} não funciona! O problema é que o fornecedor estava vindo vazio, mas a expressão acima funciona sim!
Muito obrigado mais uma vez, e me desculpem.

Jandiro

Criado 21 de março de 2005
Ultima resposta 28 de mar. de 2005
Respostas 3
Participantes 3