1

我想在 javascript 中使用 JSTL 库。

我的代码如下。

<script type="text/javascript">
var grid_data = 
[
<c:forEach items="${LIST}" var="list" varStatus="status">               
<c:if test="${ status.index == 0 }">
{id:'${list.NOTICE_ID}'}
</c:if>
</c:forEach>
];
</script>

此代码运行良好,但不适用于选择标签。
有什么特别的原因吗?有谁能够帮我?

// Syntax error on tokens ** especially in script not in html body **
<script type="text/javascript">
var grid_data = 
[ 
<c:forEach items="${LIST}" var="list" varStatus="status">               
<c:choose>
<c:when test="${ status.index == 0 }">
{id:'${list.NOTICE_ID}'}
</c:when>
<c:otherwise>
,    {id:'${list.NOTICE_ID}'}
</c:otherwise>
</c:choose>
</c:forEach>
]
</script>

在此处输入图像描述

4

3 回答 3

2

这些是 Eclipse 发出的错误信号,因为 Eclipse 在与 JSP 代码混合时无法正确验证 JavaScript 代码语法。

部署 JSP,运行它,看看它在执行时是否真的有效。它可能会运行良好。

于 2013-11-01T05:45:18.357 回答
0

以下方法可能有助于避免 eclipse 中的丑陋错误:

  1. 设置一个变量,如下所示:

    <c:set var="newVariable">
    {
    <c:forEach var="entry" items="${variableFromServerAsMap}" varStatus="status">
        "<c:out value='${entry.key}'/>" : "<c:out value='${entry.value}'/>}"<c:if test="${not status.last}">,</c:if>
    </c:forEach>
    };
    

  2. 并在 javascript 部分中使用 newVariable 变量,如下所示:

    <script type="text/javascript">
        var my_js_data = <c:out value="${newVariable}" escapeXml="false"/>
    </script>
    

输出应类似于以下内容:

<script type="text/javascript">
    var my_js_data = {

            "some_param_key" : "some_param_value",
            "some_param_key_2" : "some_param_value_2",

    };
</script>
于 2014-05-09T08:28:07.017 回答
0

无法帮助您选择标签 - 此当前代码段无法工作(缺少结束标签)。如jstl foreach 中所述,在列表的每个但最后一个元素之后添加逗号如何省略最后一条记录中的元素

于 2013-10-31T11:57:47.023 回答