如何禁用JSP中的<script>标记中的Javascript验证...在Eclipse </script>中

时间:2010-09-01 21:31:37

标签: javascript eclipse validation jsp

我正在使用JSTL在JSP中的一些内联脚本中生成JavaScript对象,如下所示:

<script>
    var data = [
        <c:forEach items="${MyData}" var="Datum" varStatus="status">
        {
            foo: ${Datum.foo},
            bar: '${Datum.bar}'
        }<c:if test="${not status.last}">,</c:if>
        </c:forEach>
    ];
</script>

并且Eclipse完全无法验证它。它生成的HTML是正确的 - 那么我如何让Eclipse停止尝试解释/验证JavaScript?

我在SO上遇到了许多类似的问题,但没有一个有效 - 包括转到首选项->验证并检查“暂停所有验证器”框!

2 个答案:

答案 0 :(得分:1)

如果有人仍然对解决方法感兴趣,

将代码放在jsp文件中并将其包含在jsp文件中将阻止javascript验证。

<script><%@include file="data_include.jsp" %></script>

另一个快速而又肮脏的解决方法:

<script>var data = [];</script>

<c:forEach items="${MyData}" var="Datum" varStatus="status">
    <c:out value="${'<script>'}" escapeXml="false"/>
        data.push({
            foo: ${Datum.foo},
            bar: '${Datum.bar}'
        });
    <c:out value="${'</script>'}" escapeXml="false"/>
</c:forEach>

即使您在服务器端进行序列化,Eclipse(Galileo)仍会在脚本标记中为c:out和$ {}提供验证错误。无论如何,我需要做以下的事情:

<c:out value="${'<script>var data = ${jsonData};</script>'}" escapeXml="false"/>

答案 1 :(得分:0)

您是否尝试使用CDATA转义代码?

<script>
  //<![CDATA[
      ...
  //]]>
</script>

有或没有//