问题描述
<c:forEach items="${hash}" var="li" varStatus="status2"> <c:if test="${status2.index == 0}"> <th class="column" scope="row"><input type="checkbox" id="recordId" name="recordId" value="${li.get(key)}"/></th> </c:if> <td>${li.value }</td></c:forEach>我是想在checkbox的value里放入指定的值。这个值是从hashmap里面取的 。 根据键可是这样写会报错 。 我知道 在el表达式里hash可以直接 .value .key 但是我要根据 key 来取值怎么弄呢 ? 谢谢 指点一下啊。。。问题补充:JasperException: /select/result.jsp(78,104) "${li.["aii"] }" contains invalid expression(s): javax.servlet.jsp.el.ELException: Encountered "[", expected one of [<IDENTIFIER>]JasperException: /select/result.jsp(78,104) "${hash.["aii"] }" contains invalid expression(s): javax.servlet.jsp.el.ELException: Encountered "[", expected one of [<IDENTIFIER>]JasperException: /select/result.jsp(78,104) "${hash.[aii] }" contains invalid expression(s): javax.servlet.jsp.el.ELException: Encountered "[", expected one of [<IDENTIFIER>]JasperException: /select/result.jsp(78,104) "${hash.['aii'] }" contains invalid expression(s): javax.servlet.jsp.el.ELException: Encountered "[", expected one of [<IDENTIFIER>]JasperException: /select/result.jsp(78,104) "${li.['aii'] }" contains invalid expression(s): javax.servlet.jsp.el.ELException: Encountered "[", expected one of [<IDENTIFIER>]问题补充:不好意思 方括号 [] 好像不行。。。我都试过了。。
解决方案
错误中显示你的用法是${li.["aii"] },没有中间的点的,这么写${li['aii']}
解决方案二:
<input type="checkbox" id="recordId" name="recordId" value="${li['key']}"/>单引号
解决方案三:
引用对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${commands["dir"]} 返回与 commands 标识符所引用的 Map 中的 "dir" 键相关联的值。 引用自[http://www.ibm.com/developerworks/cn/java/j-jstl0211/],也就是:<input type="checkbox" id="recordId" name="recordId" value="${li["key"]}"/>
解决方案四:
<th class="column" scope="row"><input type="checkbox" id="recordId" name="recordId" value="${li[key]}"/></th> 或者是<th class="column" scope="row"><input type="checkbox" id="recordId" name="recordId" value="%{li[key]}"/></th>
解决方案五:
你在后台或者aciton里把Map转成List,在前面直接遍历多好啊?