gpt4 book ai didi

Facelets 中的 JavaScript 导致 java.lang.IllegalArgumentException : null source

转载 作者:行者123 更新时间:2023-11-29 10:20:29 25 4
gpt4 key购买 nike

我是 Javascript 和 Java Server Faces 的新手,我遇到了下一个问题。

下面的代码运行正常:

<?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"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript">
function initialize()
{
alert("Testing");
}
</script>
</head>
<body onload="initialize()">

<h1 align="center">Sol-Tech</h1><br />

</body>
</html>

但是当我添加一个 FOR 循环时,它不起作用:

<?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"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript">
function initialize()
{
for(var i; i<3; i++)
{
alert("Test");
}
}
</script>
</head>
<body onload="initialize()">

<h1 align="center">Sol-Tech</h1><br />

</body>
</html>

enter image description here

有没有人对如何在 javascript 中执行 FOR 循环而不出错有任何建议?

提前致谢,伊曼纽尔

最佳答案

您使用的是过时版本的 Mojarra,它暴露了一个错误,其中这种 IllegalArgumentException: null source当 View 文件包含 XML 语法错误或无法恢复 View 时,错误地抛出。另见 java.lang.IllegalArgumentException: null sourceJSF issue 1762 .

如果您升级到较新的 Mojarra 版本(目前已经是 2.1.14 ),那么在这种特殊情况下,您将在字符 < 上得到一个更易于解释的 XML 语法错误。表示 XML 元素的开始。 Facelets 是一种基于 XML 的 View 技术,由 SAX 解析器解析。您需要更换 XML special character <通过 &lt;

for(var i=0; i&lt;3; i++) {
alert("Test");
}

或者将整个脚本放在 CDATA 中 block

<script type="text/javascript">
<![CDATA[
function initialize()
{
for(var i=0; i<3; i++)
{
alert("Test");
}
}
]]>
</script>

或者只是把它放在自己的 .js 中文件,这样它就不会被解析为 XML。

<script type="text/javascript" src="script.js"></script>

另见:


与具体问题无关,JS语法错误(未初始化var i我已经在代码片段中修复)实际上是一个完全不同的问题,只会在客户端显示错误在浏览器的 JS 控制台中,绝对不会在服务器端引起异常,因为 JS 根本不在网络服务器中运行,而仅在网络浏览器中运行。

关于Facelets 中的 JavaScript 导致 java.lang.IllegalArgumentException : null source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13232815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com