Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在<;中禁用Javascript验证;脚本>;JSP中的标记…在Eclipse中_Javascript_Eclipse_Validation_Jsp - Fatal编程技术网

如何在<;中禁用Javascript验证;脚本>;JSP中的标记…在Eclipse中

如何在<;中禁用Javascript验证;脚本>;JSP中的标记…在Eclipse中,javascript,eclipse,validation,jsp,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 s

我使用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>

风险值数据=[
{
foo:${Datum.foo},
bar:“${Datum.bar}”
},
];
Eclipse完全无法验证它。它生成的HTML是正确的——那么如何让Eclipse停止尝试解释/验证JavaScript呢


我在这里遇到了许多类似的问题,但没有一个有效——包括转到首选项
->
验证和选中“暂停所有验证程序”框

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

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

//

有或没有
/

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

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

//

有或没有
/

,以防有人仍对解决方案感兴趣

将代码放入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>
var数据=[];
数据推送({
foo:${Datum.foo},
bar:“${Datum.bar}”
});
即使在服务器端进行序列化,Eclipse(Galileo)仍然会在脚本标记中为c:out和${}提供验证错误。无论如何,我需要做如下事情:

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

以防有人仍对解决方案感兴趣

将代码放入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>
var数据=[];
数据推送({
foo:${Datum.foo},
bar:“${Datum.bar}”
});
即使在服务器端进行序列化,Eclipse(Galileo)仍然会在脚本标记中为c:out和${}提供验证错误。无论如何,我需要做如下事情:

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


Auto:您应该考虑使用适当的JSON编码器来生成这种结构,而不是试图自己去做。否则,像
Datum.bar中的
'
这样的字符将不会被转义以适合JS字符串文字,并且您将有脚本注入安全漏洞。@bobince-您完全正确;我最终会到达那里的。现在,我只是想把原型组装起来,实际上我使用了
bar:${fn:replace(Datum.bar,“'”,“\\”)}
来解决您提到的问题。无论如何,字符串不是来自用户输入的……请注意
栏:…
后面的最后一个逗号。它将崩溃。@slebetman:看到
?省略后面的逗号。:)@Bears:它省略了数组后面的逗号。但是数组中的对象仍然有逗号。您写道: Bar:'${DATAM.Bar },旁边:您应该考虑使用一个合适的JSON编码器来生成这种结构,而不是试图自己去做。否则,像
Datum.bar中的
'
这样的字符将不会被转义以适合JS字符串文字,并且您将有脚本注入安全漏洞。@bobince-您完全正确;我最终会到达那里的。现在,我只是想把原型组装起来,实际上我使用了
bar:${fn:replace(Datum.bar,“'”,“\\”)}
来解决您提到的问题。无论如何,字符串不是来自用户输入的……请注意
栏:…
后面的最后一个逗号。它将崩溃。@slebetman:看到
?省略后面的逗号。:)@Bears:它省略了数组后面的逗号。但是数组中的对象仍然有逗号。你写道:
bar:'${Datum.bar}',
我非常希望固定的东西-没有这样的运气。我非常希望固定的东西-没有这样的运气。