题
<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:
<td>${nameLookup.get(result.uglyDisplayName)}</td>
显然,这不起作用,否则我不会在这里发帖。我继续将 var 设置为我将 HashMap 放在 ModelAndView 中(顶行)下的名称,但我不确定这是否是获取该对象的正确方法。
解决方案
对于第一部分(“JSP 正在做什么”),请参阅 JSP 表达式语言.
对于第二部分,请尝试:
<td>${nameLookup[result.uglyDisplayName]}</td>
我不想 发誓 它会起作用(自从我使用 JSP 以来已经很长时间了),但值得一试。
不隶属于 StackOverflow