Использование Java-объекта в JSP - PullRequest
1 голос
/ 06 июня 2009
<c:set var="nameLookup" value="${names}" />
<c:forEach var="result" items="${results}">
    <tr>        
        <td>${result.uglyDisplayName}</td>
        <td>${result.phonenum}</td>
    </tr>
</c:forEach>

Это выдержка из jsp, которую я пытаюсь отредактировать.

Результатами является List<Object>, возвращаемое в ModelAndView из контроллера, каждый из которых Object имеет getUglyDisplayName и getPhonenum. Я не совсем понимаю, как это работает. Я предполагаю, что JSP делает некоторые getClass().getName() или что-то за кадром? Любые указатели на этот процесс будут поучительными. Во всяком случае, эта часть работает.

В контроллере я добавил еще один объект, который будет возвращен в ModelAndView. Это HashMap с более хорошими отображаемыми именами, для которых уродливые отображаемые имена являются ключами. Поэтому я хочу заменить этот первый тд на что-то вроде этого:

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

Это не работает, очевидно, иначе я бы не стал публиковать здесь. Я пошел дальше и установил переменную для имени, которое я поместил в HashMap в ModelAndView (верхняя строка), но я не уверен, что это правильный способ получить этот объект.

1 Ответ

2 голосов
/ 06 июня 2009

Для первой части («что делает JSP») см. Язык выражений JSP .

Для второй части попробуйте:

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

Я бы не хотел поклясться , это сработает (давно я пользовался JSP), но попробовать стоит.

...