2011-09-27 12 views
5

Używam Spring MVC dla mojego kontrolera, a JSP to moja warstwa prezentacji.Podwójnie zagnieżdżone zmienne EL?

Wewnątrz mojego kontrolera Wiosna, mam:

model.put("issues", dataManager.getIssues()); 
model.put("functions", dataManager.getFunctions()); 

Więc teraz w moim JSP, mam dostęp do

${requestScope['issues']} 
${requestScope['functions']} 

to wszystko dobrze. Ale aby mój kod mógł być rozszerzalny, chciałbym zapisać w bazie danych nazwę zmiennej issues i functions, która będzie następnie dostępna za pośrednictwem właściwości obiektu configs, który jest zapętlony. Więc co chciałbym skończyć z jest coś jak następuje:

<c:forEach items="${configs}" var="cfg"> 
    <c:if test="${cfg.configType == 'select'}"> 
     <th>${cfg.header}</th> 
     <td><myTagLib:select values="${requestScope['${cfg.selectorName}']}" /></td> 
    </c:if> 
</c:forEach> 

Gdzie ${cfg.selectorName} odbędzie albo issues lub functions w tym przykładzie.

Odpowiedz

6

Jesteś blisko. Trzeba tylko usunąć zagnieżdżoną ${}, ponieważ jest to nieprawidłowa składnia.

<myTagLib:select values="${requestScope[cfg.selectorName]}" /> 
+0

..... I to wystarczyło. Perfekcyjnie, dzięki! – Mike

+0

Nie ma za co. – BalusC

+0

@BalusC, robię jak ** \t \t \t \t \t \t \t **. Ale nie jestem w stanie zdobyć listy przedmiotów w ten sposób. proszę pomóż. – masT