jsp - 通过变量索引访问哈希元素
问题描述
我将 12 个相同的 HTML 表单控件重构为循环内的一段代码。我不能只循环表单,因为每月值可能存在也可能不存在,所以我month
在 1-12 范围内构建了一个变量(到目前为止一切都很好):
<c:forEach var="month" begin="1" end="12">
Month #<c:out value="${month}"/>
</c:forEach>
现在我需要从两个哈希图中访问项目:
HashMap<Long, String> amounts
HashMap<String, String> invalidFields
旧的“静态”语法是:
<c:out value="${it.amounts[1]}"/>
<c:out value="${it.invalidFields.amount_1}"/>
注入组合的语法是什么month
?
解决方案
和of被解释为begin
,但您的映射键被创建为。end
<c:forEach>
java.lang.Integer
java.lang.Long
Integer int1 = new Integer(1);
Long long1 = new Long(1L);
System.out.println(int1.equals(long1)); // false
所以Map#get()
永远不会为这些键工作。
将您amounts
的改为Map<Integer, String>
改为,或使用 aList<String>
代替。
无论哪种方式,您都可以使用:
${it.amounts[month]}
推荐阅读
- python - 如何将坐标设置为状态空间(范围)以在 Q 表中使用?
- c++ - 输出说明
- azure-devops - 天蓝色回购分支政策
- data-visualization - 多变量颜色图和可视化 QGIS
- docker - How to setup docker registry in k8s cluster?
- prose-mirror - ProseMirror/vue-tiptap 替换 nbsp 到空间
- javascript - 如何制作一个检查数组值是否反向连续的javascript程序?
- mongodb - mongoDb 一次性获取过滤器数组
- python - 烧瓶返回空的json
- android - 选择 OpenCV sdk java 时看不到 OpenCV 模块名称