4

可能重复:
javax.servlet.ServletException:错误解析/page.xhtml:元素的内容必须由格式良好的字符数据或标记组成

这是一个 jsf 2.0 项目。

xhtml 文件:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Ring</title>
        <h:outputScript library="js" name="jquery-1.8.1.min.js" />
        <h:outputScript library="js" name="processing-1.4.1.js" />

        <script type="text/javascript">
            $(function(){
                var pjs = Processing.getInstanceById("viz");
                var json = #{TableMatchesBean.json};
                var data = eval("("+json+")");
                if(data) {

                    for(i=0; i<data.segments.length; i++) {
                        var segment = data.segments[i];
                        pjs.addSegment(segment.label, segment.count,segment.isMain);
                    }
                }
            }); //end ready
        </script>

    </h:head>
    <h:body>

        <canvas id ="viz" data-processing-sources="common.pde"></canvas>

    </h:body>
</html>

在 javascript 中 for 循环的第一行,

for(i=0; i<data.segments.length; i++) {

Netbeans 引发此错误:“致命错误:元素类型“data.segments.length”必须后跟属性规范“>”或“/>”。”

这个错误表明“<”被解释为一些xhtml,而不是js(我认为)。这是Netbeans的错误还是这里的js和xhtml之间真的存在混淆?

4

1 回答 1

17

将 JavaScript 代码移动到外部 JavaScript 文件

或者

使用CDATA

<script type="text/javascript">
 //<![CDATA[
  var i = 0;

  while  (++i < 10)
  {
    // ...
  }
 //]]>
</script>
于 2012-09-06T20:54:11.243 回答