2014-01-16 158 views
0

我有这个访问在EL嵌套对象

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

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

Basially,对象的哈希表...

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

控制器返回输出对象的output.jsp的设置它作为一个模型属性称为output

在output.jsp的页面后,我想不过显示HashMap中存在的输出对象的许多项目。例如,显示存储在物品1(存储在HashMap中的键1)项目,这是我已经试过,硬运气:

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

,可是没有工作我想它的方式。请任何人都可以帮助我,或至少建议一个替代方案。请分享你的想法

解决办法: 我现在觉得自己很蠢。以上两项工作。我之所以无法让他们工作,是因为我没有将POC添加到哈希映射中,而是使用任何值初始化POC。

+0

什么“它没有按照我希望的方式工作”的意思?如何将对象添加到request/session/servlet上下文属性中? –

+0

我使用'model.addAttribute(...)'来添加它' 我想出了解决方案,并且正在问题本身中进行更新。 – Nikhil

回答

4

您需要为要在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类的属性。

0

解决方案:现在我觉得很蠢。以上两项工作。我之所以无法让他们工作,是因为我没有将POC添加到哈希映射中,而是使用任何值初始化POC。