0

我有一个控制器和一个 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 说“令牌“${client.name}”的语法错误,删除此令牌”

如果我用“”替换“${client.name}”,Eclipse 会说同样的话......

4

2 回答 2

1

在您的 javascript 中执行此操作,只需使用 jstl 创建 js 数组和 poplutae。

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

然后您可以根据需要引用您的 jsList 。但我同意其他人只是重构并使用 jstl。

于 2013-06-14T14:41:26.450 回答
1

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

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

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

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

于 2013-06-14T14:38:47.080 回答