I think you cannot nest EL expressions to achieve what you need. Have a look at this question How to nest an EL expression in another EL expression
If the number of hashmap's you are accessing are limited, then you may look at using the <c:choose>
tag. Here is one example.
Map<String, Integer> englishHashMap = new HashMap<String, Integer>();
Map<String, Integer> spanishHashMap = new HashMap<String, Integer>();
Map<String, Integer> hindiHashMap = new HashMap<String, Integer>();
englishHashMap.put("english", 1);
englishHashMap.put("hindi", 2);
englishHashMap.put("telugu", 3);
spanishHashMap.put("english1", 1);
spanishHashMap.put("hindi1", 2);
spanishHashMap.put("telugu1", 3);
hindiHashMap.put("english2", 1);
hindiHashMap.put("hindi2", 2);
hindiHashMap.put("telugu2", 3);
String language = "English";
context.setAttribute("mapEnglish", englishHashMap);
context.setAttribute("mapSpanish", spanishHashMap);
context.setAttribute("mapHindi", hindiHashMap);
context.setAttribute("language", language);
You can access the hashmap in the jsp page like below
<c:set var="language" value="${applicationScope.language}"/>
<c:choose>
<c:when test="${language == 'English'}">
<c:set var="requiredMap" value="${mapEnglish}"/>
</c:when>
<c:when test="${language == 'Spanish'}">
<c:out value="Spanish"/>
<c:set var="requiredMap" value="${mapSpanish}"/>
</c:when>
<c:otherwise>
<c:out value="Hindi"/>
<c:set var="requiredMap" value="${mapHindi}"/>
</c:otherwise>
</c:choose>
<c:forEach items="${requiredMap}" var="orderedCityMap">
Key:<c:out value="${orderedCityMap.key}"/>,
Value:<c:out value="${orderedCityMap.value}"/><br>
</c:forEach>
The output is :
Key:telugu, Value:3
Key:hindi, Value:2
Key:english, Value:1