4 votes

Travailler avec des noms de variables dynamiques en EL

En EL, je veux accéder à la valeur

${settings_123456.settingsMap[test].value}

Le problème est que settings_123456 est une variable. Alors je l'ai stocké dans la variable ${setting} et j'ai essayé ${setting.settingsMap[test].value}, mais cela ne fonctionne pas

Éditer :

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

Le modèle est défini avec l'objet Setting et j'ai besoin de récupérer la valeur de la variable myTest dans mon jsp en utilisant jstl. Notez également que la clé pour settingsMap est également dynamique, c'est pourquoi vous pouvez voir la variable test dans le code JSP.

6voto

BalusC Points 498232

Vous pouvez y accéder en spécifiant explicitement la carte de portée.

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

Utilisez ${sessionScope} ou ${applicationScope} à la place lorsqu'il s'agit d'une portée de session ou d'application.

0voto

david a. Points 2969

Vous devez faire de settingsMap une propriété, c'est-à-dire déclarer un setter et un getter pour cela :

Public class Setting {
  Map settingsMap;

  public Map getSettingsMap() {
    return this.settingsMap;
  }

  public void setSettingsMap(Map settingsMap) {
    this.settingsMap = settingsMap;
  }   

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X