Pregunta

<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 es un extracto de una JSP que estoy tratando de corregir.

resultados es un List<Object> que se devuelven en el ModelAndView desde el controlador, de los cuales cada uno tiene un Object getUglyDisplayName y getPhonenum. No estoy realmente clara sobre la forma en que funciona. Creo que la JSP está haciendo un getClass().getName() o algo detrás de las escenas? Cualquier punteros en ese proceso sería esclarecedor. De todos modos, esa parte está trabajando.

En el controlador He añadido otro objeto para ser devuelto en el ModelAndView. Es un HashMap que tiene los nombres de visualización más agradable para los que los nombres de visualización feas son las claves. Así que quiero para sustituir a la primera td con algo como esto:

<td>${nameLookup.get(result.uglyDisplayName)}</td>

Esto no funciona, obviamente, de lo contrario no sería publicar aquí. Me adelanté y puse una var al nombre pongo el HashMap en el ModelAndView bajo (línea superior), pero no estoy seguro si eso es el camino correcto para llegar a ese objeto.

¿Fue útil?

Solución

Para la primera parte ( "lo que está haciendo JSP") ver el JSP lenguaje de expresión .

Para la segunda parte, trata de:

<td>${nameLookup[result.uglyDisplayName]}</td>

No me gustaría a jurar que va a trabajar (que es un largo tiempo desde que he utilizado JSP) pero vale la pena intentarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top