【问题标题】:Getting a XHTML parsing error when using JavaScript in Facelets [duplicate]在 Facelets 中使用 JavaScript 时出现 XHTML 解析错误 [重复]
【发布时间】:2012-04-25 19:27:14
【问题描述】:

我正在制作一个简单的加载栏,Facelets 似乎不喜欢我的 JavaScript 中的条件语句。

这是我的代码:

<div class="loader_bar">
   <div></div>
</div>
<script type="text/javascript">
            $(document).ready(function() {

setTimeout(function() {
    var current_width = parseFloat($('.loader_bar div').css('width'));
    var max_width = parseFloat($('.loader_bar').css('width'));
    var next_width = current_width / max_width * 100 + 1;
    if (next_width <= 100) {
        $('.loader_bar div').css('width', next_width + '%');
        setTimeout(arguments.callee, 10);
    }

}, 100);
});​

        </script>

当我加载页面时出现以下错误:

javax.servlet.ServletException: Error Parsing /device/main/site/test.xhtml: Error
Traced[line: 69] The content of elements must consist of well-formed character data
or markup.

对应于我的JS函数“的if statement中的操作符

if(next_width <= 100).

为什么这不起作用?

【问题讨论】:

  • 尝试将您的 JS 包装在 或将您的文件放在外部(无论如何更好)
  • 您是否在某种 Java 框架中使用该视图?这与 Java 有什么关系?
  • @gillesc - 谢谢你,我试过了,我不再出现错误了,但现在javascript似乎不起作用(即我的加载栏没有填满)。我尝试将 CDATA 放在 $(document).ready... }); 之前我也只尝试过这个功能。有什么想法吗?
  • @entek - 如问题所示,我正在使用 JSF 框架,并且在 jsfiddle 中执行此操作时没有收到任何错误,因此出现 Java 错误。谢谢。
  • 什么框架?也许它希望视图具有某种要指定的 XML Schema?

标签: javascript jsf facelets


【解决方案1】:

尝试将 javascript 代码放在 CDATA 标记中

<script type="text/javascript">
<![CDATA[
$(document).ready(function() {
....
}
]]>
</script>

【讨论】:

  • 谢谢,我不再收到错误消息了,但现在我的 JS 无法工作(即栏没有填满)。有什么想法吗?
【解决方案2】:

如果您使用 JSF,您可能需要考虑将 JS 代码放入 .js 文件中。 然后,例如,如果您已将 myScripts.js 脚本文件放入 /WebContent/theme 文件夹,则可以将其包含在您的 jsp 页面中,如下所示:

<script type="text/javascript"
    src='<%=renderResponse.encodeURL(renderRequest
                    .getContextPath() + "/theme/myScripts.js")%>'
    charset="UTF-8"></script>

【讨论】:

  • 谢谢。我有 99.9% 的时间这样做。但有时,我别无选择,需要将其放入脚本中。 (不是现在,而是其他的东西,比如 Conditional Google Analytics)
  • 实际上,JSF 首选的view technologyFacelets,并且JSF 有一个特殊的标签&lt;h:outputScript /&gt; 用于包含脚本。我很惊讶有人仍在使用 JSP 作为 JSF 的视图。
  • @jFrenetic 我从未使用过 Facelets,但我看不出 Facelets 和 JSP 之间有多大区别。
  • @UMad 那么您可能想阅读the official Java EE tutorial。 Quote: JSP 技术被认为是 JavaServer Faces 2.0 的一种已弃用的表示技术。 JSP 很少(如果曾经)在 JSF 中用于构建现代 Web 应用程序。
  • @jFrenetic 我正在使用 JSF 1.2,因为 websphere 产品仅支持 JSF 1.1 和 1.2。
猜你喜欢
  • 2010-11-03
  • 2017-06-24
  • 1970-01-01
  • 2010-10-01
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2021-09-01
相关资源
最近更新 更多