【发布时间】:2014-07-09 13:05:40
【问题描述】:
在我的 spring 项目中,我的视图从控制器接收到一个 Map 对象,如下所示:
Map<String, List<?>>
我以这种方式在我的 jsp 代码中访问它:
<c:forEach var="field" items="${values[item]}">
<c:out value="${field}"/> <br/>
</c:forEach>
考虑到? 指示的类,它是一个普通的POJO 类,我如何在我的jsp 中访问这个类的属性?换句话说,我应该用什么正确的指令来替换:
<c:out value="${field}"/> <br/>
因为这样,当我在浏览器中打开页面时,我会得到类似的东西:
com.spring.loja.model.categoria.persistence.model.Categoria@41c0e228
更新
我尝试使用这个,在这个主题中发布了以下答案:
<c:out value="${field.name}"/>
但我想知道是否有办法改用这种方法:
@Override
protected String getArgument(int ordem) {
switch(ordem) {
case 0: return "Id";
case 1: return "Login";
case 2: return "Senha";
case 3: return "Nome";
case 4: return "Sobrenome";
case 5: return "E-Mail";
case 6: return "Autorizacao";
default: return null;
}
}
而且这种方式可以避免使用getter方法的名称(这是一个通用的jsp页面,被多个视图使用,不知道会使用哪个方法)
【问题讨论】:
-
<c:out value="${field}"/>隐式调用toString()。您希望看到什么? -
@geo 并在下面查看答案和我的评论,以了解有关我想要做什么的更多详细信息。
-
Java 中不存在方法排序之类的东西。我建议你让你的所有模型对象实现一个特定的接口,该接口有一个方法可以返回你想要的数据
-
@geo 是的,我有。请参阅我的更新,其中包含返回我想要使用的数据的方法。