【问题标题】:Using a java object in jsp在jsp中使用java对象
【发布时间】:2009-06-06 19:15:24
【问题描述】:
<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 的摘录。

Results 是控制器在 ModelAndView 中返回的 List&lt;Object&gt;,其中每个 Object 都有一个 getUglyDisplayNamegetPhonenum。我实际上并不清楚它是如何工作的。我猜 jsp 正在做一些 getClass().getName() 或幕后的事情?有关该过程的任何指示都会很有启发性。无论如何,这部分是有效的。

在控制器中,我添加了另一个要在 ModelAndView 中返回的对象。这是一个具有更好显示名称的 HashMap,其中丑陋的显示名称是键。所以我想用这样的东西替换第一个 td:

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

显然,这不起作用,否则我不会在这里发帖。我继续为我将 HashMap 放在 ModelAndView 中(顶行)下的名称设置了一个 var,但我不确定这是否是获取该对象的正确方法。

【问题讨论】:

标签: java jsp hashmap modelandview


【解决方案1】:

对于第一部分(“JSP 正在做什么”),请参阅JSP Expression Language

对于第二部分,尝试:

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

我不想发誓它会起作用(我已经很久没有使用 JSP了)但值得一试。

【讨论】:

  • Jon 是正确的。请注意,已为 JSR 245(JEE6 / JSP 2.1 容器)实现了非静态方法调用。因此,在不久的将来,这样的调用将是有效的:nameLookup.get(result.uglyDisplayName)
猜你喜欢
  • 1970-01-01
  • 2019-08-14
  • 2010-12-07
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-27
相关资源
最近更新 更多