我有一个Map
在EL中${map}
,我试图使用一个键来获取它的值,该键本身也是一个${key}
带有值的EL变量"1000"
.
使用${map["1000"]}
作品,但${map["$key"]}
不起作用.我做错了什么,如何Map
使用变量作为键来获取值?
Jas*_*ies 21
$
不是变量名的开头,它表示表达式的开头.您应该使用${map[key]}
访问key
地图中的属性map
.
您可以在带有GET
参数的页面上尝试使用,例如使用以下查询字符串?whatEver=something
<c:set var="myParam" value="whatEver"/>
whatEver: <c:out value="${param[myParam]}"/>
Run Code Online (Sandbox Code Playgroud)
这将输出:
whatEver: something
Run Code Online (Sandbox Code Playgroud)
请参阅:https://stackoverflow.com/tags/el/info并滚动到"Brace notation"部分.
小智 5
我以前遇到过这个问题。这通常发生在键不是字符串时。修复方法是在使用键从映射中获取值之前将键转换为字符串
像这样的东西:
<c:set var="keyString">${someKeyThatIsNotString}</c:set>
<c:out value="${map[keyString]}"/>
希望有帮助
Nic*_*col -4
我认为你应该访问你的地图,如下所示:
${map.key}
Run Code Online (Sandbox Code Playgroud)
并检查一些关于 jstl 的教程,如1和2(有点过时,但仍然有效)
归档时间: |
|
查看次数: |
37927 次 |
最近记录: |