【问题标题】:Accessing nested objects in EL访问 EL 中的嵌套对象
【发布时间】:2014-01-16 13:49:40
【问题描述】:

我有这个

Class Output {
    HashMap<String,POC> hMap;
    //Other stuff
}

还有这个

Class POC {
    String var1;
    String var2;
    String var3;
    //Other stuff
}

基本上,对象的哈希映射...

我正在使用 Spring MVC 框架,以上两个类是我的模型对象。我的服务类创建了一个输出对象,并将其传递给控制器​​。

控制器将该输出对象设置为名为@9​​87654323@的模型属性后,将其返回给output.jsp

在 output.jsp 页面中,我想显示输出对象的 hashmap 中存在的许多项目。例如,要显示存储在 item1 中的项目(作为 key1 存储在 HashMap 中),这是我尝试过的,运气不好:

${output.hMap.key1.var1)
${output.hMap['key1'].var1)

没有一个按我想要的方式工作。请任何人都可以帮我解决这个问题,或者至少提出一个替代方案。分享你的想法

解决办法: 我现在觉得很傻。上述两项工作。我无法让它们工作的原因是因为在将 POC 添加到 hashMap 之前,我没有使用任何值初始化 POC。

【问题讨论】:

  • None of it works the way I want it to 是什么意思?如何将对象添加到您的请求/会话/servlet 上下文属性中?
  • 我正在使用 model.addAttribute(...) 添加它我想出了解决方案,并在问题本身中更新它。

标签: java spring jsp spring-mvc el


【解决方案1】:

您需要为要在 EL 中使用的字段提供访问器。

public class Output {
    HashMap<String,POC> hMap;


    public HashMap<String, POC> getHMap() {
        return hMap;
    }

    public void setHMap(HashMap<String, POC> hMap) {
        this.hMap = hMap;
    }
}

POC 类的属性也是如此。

【讨论】:

    【解决方案2】:

    解决办法:我现在觉得自己很蠢。上述两项工作。我无法让它们工作的原因是因为在将 POC 添加到 hashMap 之前,我没有使用任何值初始化 POC。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多