我想问一下,如何使用for循环在js中获取ModelAndView对象的值?
在控制器中,我写了这个:
@RequestMapping(value="SearchCourse.html", method=RequestMethod.GET)
public ModelAndView searchCourse() {
ModelAndView model = new ModelAndView("/student/SearchCourse");
model.addObject("schoolList", schoolService.listSchool());
return model;
}
在js中,如果我写道:
${
schoolList.get(0).getSchoolname()
}
然后,我可以得到结果。
但是,如果我写了一个for循环:
var schoolList = new Array();
for(var i = 0; i < "${schoolList.size()}"; i++) {
alert("${schoolList.get("+i+").getSchoolname()}"); //error
}
然后,我会收到错误。 我知道我不能像上面那样编写代码,因为我滥用了语法。 但是,如何使用ModelAndView获取js中的schoolList?
答案 0 :(得分:1)
第一个表达式不是JavaScript,而是jstl表达式。 如果要在JavaScript中访问模型,则需要为javascript变量赋值或将JSON对象返回给您的请求。 要为javascript数组赋值,您应该执行以下操作:
<script>
var schoolList=new Array();
<c:forEach items="schoolList" var="school">
schoolList[]=${school.schoolname};
</c:forEach>
</script>
请注意,此代码中混合了javascript和jstl。这是一个示例代码,可能存在错误。
检查下面与您的问题类似的答案。
How to transfer java array to javaScript array using jsp?
How to pass array from java to javascript
Converting a Java ArrayList of strings to a JavaScript array
答案 1 :(得分:1)
谢谢@jny!我自己想通了。 我们可以简单地使用下面的代码来获取列表并迭代列表。
<script>
var schoolList=${schoolList}
for(var i=0;i<schoolList.length;i++) {
alert(schoolList[i].schoolname);
}
</script>