${x}="mit"
${Place['name_mit']}
将给出结果为美国。
但是如果我尝试${Place['name_'+x]}
我会得到错误。
如何解决这个问题?
${x}="mit"
${Place['name_mit']}
将给出结果为美国。
但是如果我尝试${Place['name_'+x]}
我会得到错误。
如何解决这个问题?
是的,它无法编译,因为+
运算符不用于字符串连接(在 EL 3.0、Java EE 7 之前)。
只需使用concat
${Place['name_'.concat(x)]}
从表达式语言 3.0 开始,
使用+
运算符连接两个字符串是有效的。
${Place['name_'+x]} //valid as of EL 3.0
字符串连接运算符
评估
A += B
您不能像那样内联连接映射键。这对我有用:
<%
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>
<%
}
%>
显然,如果没有来自您的用例的上下文,我必须自己拼凑一个适当的页面上下文状态。必要时替换。