在我的 spring 项目中,我的 View 从 Controller 接收到一个 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页面,被多个 View 使用,不知道会用到哪个方法)
最佳答案
例如,如果这个 POJO 有 getName()
setter/getter ,然后你可以访问name
字段使用:
<c:out value="${field.name}"/>
如果你使用 Servlet +3.0
版本,那么您可以从 EL 调用方法。然后你可以尝试这样的事情:
<c:out value="${field[field.getArgument(2)]}"/>
关于java - 使用 jSTL 访问类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24654542/