js el jstl list 循环

时间:2023-03-09 06:10:07
js el jstl list 循环
需要在js中获取从Controller传过来的list集合,通过循环遍历找到对应的值,赋值到指定input框中
刚开始做法:
for (var h = 0; h < gradesize; h++) {
var minValue = "${evaluationGrades[h]}";
console.log(minValue + "=minValue");
var maxValue = "${evaluationGrades[h]}";
console.log(maxValue + "=maxValue");
if (result >= parseInt(minValue) && result <= parseInt(maxValue)) {
$("#recommendGrade").val("${evaluationGrades[h].rankName}");
break;
}
}
死活获取不到值;
原因:在for循环中使用EL表达式${evaluationGrades[h]}中的h是取不到值的,也就是说EL表达式不可以使用JS中的变量,EL表达式是一个整体。
查询到在js中可以使用jstl:
解决办法
<c:forEach items="${evaluationGrades}" var="grade">
  array.push("${grade}"); //js中可以使用此标签,将EL表达式中的值push到数组中
  console.log("${grade}");
  var minValue = "${grade.gradeMin}";
  console.log(minValue + "=minValue");
  var maxValue = "${grade.gradeMax}";
  console.log(maxValue + "=maxValue");
  if (result >= parseInt(minValue) && result <= parseInt(maxValue)) {
  alert(11);
  $("#recommendGrade").val("${grade.rankName}");
  } else {
  self.top.layer.msg("等级范围不够,请确认等级范围", {time: 2000});
  }
</c:forEach>