我想知道如何将下面的代码传递给jstl,以根据索引更改名称。
List<Map> inventariozonas = new ArrayList<Map>();
for(int i = 1; i < 20; i++){
Map r3 = new HashMap();
r3.put("puntoventa", "puntoventa"+i);
inventariozonas.add(r3);
}
我一直在尝试通过JSTL在HTML中获取值,但是由于每个变量都有不同的名称,我不知道如何动态获取它们。
使用下面的代码重复相同的值。
<c:forEach items="${inventariozonas}" var="r">
<tr>
<td>${r.puntoventa1}</td>
</tr>
</c:forEach>
是否有可能做这样的事情:
<c:forEach items="${inventariozonas}" var="r">
<tr>
<td>${r.puntoventa+index}</td>
</tr>
</c:forEach>
答案 0 :(得分:1)
您可以尝试这种方式:
function getParamListForCustomGroupUpdate() {
var selected_execution_group = document.getElementById("select-execution-group-update").value;
$.ajax({
method: "GET",
dataType: "text",
url: "getObjectList",
data: {
execution_group_name: selected_execution_group
},
success: function (result) {
// result in array
result = result.replace(/\\/g, "");
referenceNode = document.getElementById("object_custom_name");
//document.getElementById("object_custom_name").value = result;
var myDiv = document.getElementById("myDiv");
//Create and append select list
var selectList = document.createElement("select");
selectList.id = "mySelect";
myDiv.appendChild(selectList);
//Create and append the options
for (var i = 0; i < result.length; i++) {
var option = document.createElement("option");
option.value = result[i];
option.text = result[i];
selectList.appendChild(option);
}
referenceNode.parentNode.insertBefore(myDiv, referenceNode.nextSibling);
}
}
<c:forEach items="${inventariozonas}" var="r" varStatus="vs">
<tr>
<td>${r['puntoventa' + vs.index]}</td>
</tr>
</c:forEach>
,有关更多详细信息,请阅读此Get value from hashmap based on key to JSTL。如果要遍历每个地图的元素,则建议采用这种方式:
r['key']