Javascript + JSP

Javascript + JSP

本文关键字:JSP Javascript      更新时间:2023-09-26

我有一个控制器和一个JSP文件。

在我的控制器中我有:

request.setAttribute("AListOfClient", AListOfClient );// AListOfObject is a List

在我的jsp文件中:

<input type="hidden" id="AListOfClient" name="AListOfClient" value="${AListOfClient}" />

<script type="text/javascript">
var item = ${(AListeOfClient[0]).name}; // no problem with this
</script>

但是我想写for:

for (i=0; i < ${length}; i++) {
var item = ${(AListeOfClient[i]).name}; // ERROR
var item = ${(AListeOfClient[0]).name}; // No Problem
});
有人能帮帮我吗??

解决方案:

var jsAListOfClient= [
<c:forEach items="${AListOfClient}" var="client">
"${client.name}",
</c:forEach>
                    ];

Eclipse说" token语法错误"${client.name}",请删除此token"

如果我将"${client.name}"替换为" ",Eclipse会显示相同的内容…

在你的javascript中,只需使用jstl创建js数组和popplutae。

var jsAListOfClient= [
        <c:forEach items="${AListOfClient}" var="client">
        "${client.name}",
        </c:forEach>
    ];

,然后你可以引用你的jsList你想要的。但我同意其他人的意见,只要重构并使用jstl。

不能将列表作为隐藏变量存储在jsp文件中。最好使用JSTL迭代该列表并创建隐藏变量。

为什么要在jsp页面上存储列表?

无论如何,这是另一种方法:

使用JSTL迭代列表,创建隐藏变量,给它们适当的id。在javascript中,迭代这些隐藏变量,您将获得所需的值。Javascript是客户端,而您在请求对象中附加的列表是服务器端,因此无法访问。