java - 使用 jSTL 访问类属性

标签 java spring jsp jstl

在我的 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/

相关文章:

java - 唯一索引或主键违规 : "PRIMARY KEY ON PUBLIC.xxx"; SQL statement

mysql - 我想在我的 Springboot 项目中实现 session (HTTP 请求)概念,但它给出了这个错误

java - 错误 : incompatible operand types and object

java - 如果我想使用弹出树查看器创建自定义组合,从哪里开始

java - 比较日期以查找匹配的年份和月份

java - JAX-WS Web 服务在客户端上收到 400 Bad Request 错误,在服务器上收到 Broken Pipe 错误以进行长时间操作

java - Spring Security guest 用户

Java 对象引用

java - 无法使用 REST 架构和 Angular JS 在 Spring Boot 中映射新 url,并且发布请求未接收对象字段值

java - 如何在 Spring MVC 中使用 CDN