在EL中使用动态变量名称

时间:2012-03-27 10:36:34

标签: jsp el

在EL中,我想访问值

${settings_123456.settingsMap[test].value}

问题是settings_123456是可变的。因此,我将其存储在${setting}变量中并尝试了${setting.settingsMap[test].value},但它无法正常工作

编辑:

Public class Setting {
  Map<String, myClass> settingsMap;
}
Public class myClass {
   private String myTest;
}

使用Setting对象设置模型,我需要使用jstl在jsp中获取myTest变量的值。另请注意,settingsMap的键也是动态的,这就是您可以在JSP代码中看到test变量的原因。

2 个答案:

答案 0 :(得分:6)

您可以通过明确指定范围图来访问它。

${requestScope[settings_123456].settingsMap[test].value}

当会话或应用程序作用域时,请使用${sessionScope}${applicationScope}

答案 1 :(得分:0)

你必须使settingsMap成为一个属性,即为它声明一个setter和一个getter:

Public class Setting {
  Map<String, myClass> settingsMap;

  public Map<String, myClass> getSettingsMap() {
    return this.settingsMap;
  }

  public void setSettingsMap(Map<String, myClass> settingsMap) {
    this.settingsMap = settingsMap;
  }   

}