需要在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>