我有一个添加到我的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>

09-20 23:25