我有一个添加到我的ModelMap的人员对象列表。一个人有名字和日期。我知道我可以通过在JSP的html部分中执行以下操作来访问列表
${peopleList}
但是,我想在JavaScript标记中的JSP中循环浏览此列表,我尝试了以下操作,但是我没有运气,为了进行测试,我一直在做警报。
var people = "${peopleList}"
alert(people[0].name);
如何在JavaScript中访问这些属性。
最佳答案
您已接近解决方案,但您做错的是无法使用List
将Java var people = "${peopleList}"
对象直接转换为javascript列表对象。相反,您可以遍历List
对象并使用JSTL手动创建javascript变量:
在jsp的顶部导入jstl核心taglib:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
然后在脚本标签内,创建您的peopleList:
<script type="text/javascript">
var peopleList = new Array();
<c:forEach items="${peopleList}" var="ppl">
var people = new Object();
people.name = '${ppl.name}';
people.date = '${ppl.date}';
peopleList.push(people);
</c:forEach>
if(peopleList.length > 0){
alert(peopleList[0].name);
}
</script>