這是我在 Thymeleaf 中使用的。我只是將dishIdQuantityMap 與dish.id 連接起來。
<div class="single-menu" th:each="dish : ${dishList}">
<input
th:value="0"
th:name="${'dishIdQuantityMap[' dish.id ']'}"
type="number"
min="0"
max="100"
step="1"
readonly
/>
它作業正常,但如果我在 JSP 中做同樣的事情
<input
value="0"
name="${'dishIdQuantityMap[' dish.id ']' }"
type="number"
min="0"
max="100"
step="1"
readonly
/>
它失敗。第 142 行發生例外
我做錯了什么?
引起:java.lang.NumberFormatException:對于輸入字串:“dishIdQuantityMap”
UPD。如果我這樣做,它有點作業
name="${'dishIdQuantityMap['}${dish.id}${']'}"
uj5u.com熱心網友回復:
我覺得你的參考太多了。這是一個演示JSP。
<%@ page import="java.util.HashMap, java.util.ArrayList"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
pageContext.setAttribute("list", list);
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 11);
map.put("b", 22);
map.put("c", 33);
pageContext.setAttribute("map", map);
%>
<c:forEach items="${map}" varStatus="loopCount">
${map[list[loopCount.index]]}
</c:forEach>
輸出為 11 22 33 。您可以嘗試使用 name="${dishIdQuantityMap[dish.id]}" 正如 Jeka_FRIZZ 指出的菜必須在范圍內。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/430140.html
