${x}="mit"
${Place['name_mit']}
会将结果显示为美国。
但如果我尝试${Place['name_'+x]}
,我会收到错误。
如何解决这个问题?
答案 0 :(得分:0)
是的,它无法编译,因为+
运算符不用于字符串连接(在EL 3.0,Java EE 7之前)。
只需使用concat
${Place['name_'.concat(x)]}
从表达语言3.0,
使用+
运算符连接两个字符串是有效的。
${Place['name_'+x]} //valid as of EL 3.0
字符串连接运算符
评估
A += B
答案 1 :(得分:-1)
您无法像这样内联地连接地图键。这对我有用:
<%
Map<String, String> things = ImmutableMap.of("thing1", "a", "thing2", "b", "thing3", "c");
pageContext.setAttribute("things", things);
for (int i = 1; i <= 3; i++) {
String key = "thing" + i;
pageContext.setAttribute("key", key);
%>
<c:out value="${key}"/>: <c:out value="${things[key]}"/> <br>
<%
}
%>
显然,如果没有用例的上下文,我必须自己拼凑一个合适的页面上下文状态。必要时替换。