gpt4 book ai didi

java - 在jSTL中创建动态变量名

转载 作者:行者123 更新时间:2023-12-02 04:51:08 25 4
gpt4 key购买 nike

我的 HashMap 在应用程序范围内。我有 3 个 HashMap mapEnglish、mapSpanish、mapHindi。语言参数在我的 session 中可用,它是英语、印地语或西类牙语。我可以通过以下方式访问它:${language}

现在我想根据语言参数动态创建 HashMap 名称。例如,如果 ${language} 是英语,则映射名称应该是 mapEnglish。我怎样才能做到这一点?

我尝试过这个:

<c:forEach items="${applicationScope.map${language}}" var="orderedCityMap">
</c:forEach>

但是它不起作用。有人可以建议吗???

最佳答案

我认为你不能嵌套 EL 表达式来实现你所需要的。看看这个问题How to nest an EL expression in another EL expression

如果您访问的 HashMap 数量有限,那么您可以考虑使用 <c:choose>标签。这是一个例子。

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);

您可以在jsp页面中访问hashmap,如下所示

<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>

输出是:

Key:telugu, Value:3
Key:hindi, Value:2
Key:english, Value:1

关于java - 在jSTL中创建动态变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29226969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com