0

为什么 facelets XHTML 文件不能成为有效的 XHTML 1.0 过渡文件?如果我在 xml 验证器(例如 w3c 验证器)中提交了一个 facelet 文件,它会在其中一个标记库中定义的第一个标记上显示错误。

示例 1:

如果我将以下文件提交给验证器,它没有显示错误,验证正常,因为文档中没有出现 taglib 标记(虽然定义了一个 jsf taglib)。

<?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">
<head>
<title></title>
</head>
<body>
</body>
</html>

示例 2:

现在我刚刚从 xmlns:h 命名空间中插入了 h:head 和 h:body 标签,但这会导致验证出错。

<?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></title>
</h:head>
<h:body>
</h:body>
</html>

当然,我在这里遗漏了一些基本的东西,但我仍然无法弄清楚是什么。

这是我在这里的第一个问题,所以请指出任何错误,谢谢!

4

1 回答 1

2

如果您检查Facelets 应用程序的生命周期,您可以看到您的视图已呈现给客户端。这将转换标签,比如<h:head>用它们的 xhtml 等价物替换它们,例如<head>. 如果您想要 XHTML 有效的模板,您可能想尝试使用 jsfc 属性,但它有其缺点。

于 2012-12-12T23:55:56.830 回答