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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top