Usando um objeto em Java JSP
-
12-09-2019 - |
Pergunta
<c:set var="nameLookup" value="${names}" />
<c:forEach var="result" items="${results}">
<tr>
<td>${result.uglyDisplayName}</td>
<td>${result.phonenum}</td>
</tr>
</c:forEach>
Este é um excerto de um jsp Eu estou tentando editar.
Os resultados é um List<Object>
sendo devolvido no ModelAndView do controlador, dos quais cada um tem um Object
getUglyDisplayName
e getPhonenum
. Eu não estou realmente clara sobre como isso está funcionando. Eu acho que o jsp está fazendo algum getClass().getName()
ou algo nos bastidores? Os ponteiros em que o processo seria esclarecedor. De qualquer forma, essa parte está funcionando.
No controlador eu adicionei um outro objeto a ser retornado na ModelAndView. É um HashMap que tem nomes para exibição mais agradáveis ??para o qual os nomes de exibição feias são as chaves. Então, eu quero substituir o primeiro td com algo parecido com isto:
<td>${nameLookup.get(result.uglyDisplayName)}</td>
Esta não funciona, obviamente, ou eu não estaria postando aqui. Fui em frente e definir uma var ao nome eu coloquei o HashMap na ModelAndView sob (linha superior), mas eu não tenho certeza se esse é o caminho certo para chegar a esse objeto.
Solução
Para a primeira parte ( "o que JSP está fazendo") ver a JSP Expression Language .
Para a segunda parte, tente:
<td>${nameLookup[result.uglyDisplayName]}</td>
Eu não gostaria de jura ele vai trabalhar (é um longo tempo desde que eu usei JSP) mas vale a pena uma tentativa.