3

我的 JSFtemplate.xhtml文件看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:jsf="http://xmlns.jcp.org/jsf">

<h:head>
    ...
</h:head> 
<h:body>
    <header jsf:id="head">
        ...
    </header>
    <nav jsf:id="nav">
        ...
    </nav>
    <main jsf:id="main">
        ...
    </main>
    <footer jsf:id="foot">
        ...
    </footer>
</h:body>
</html>

Eclipse 抱怨

未知标签(主要)。

我想知道我的文件是否格式不正确,或者 Eclipse 无法正确验证这一点。

4

1 回答 1

5

这不是 JSF 问题。删除 passthrough 元素 trigger 时,您仍然会遇到完全相同的问题jsf:id。如果不在 XHTML 文件中的任何位置使用 JSF 标记/属性,您甚至仍然会遇到完全相同的问题。

<main>标签在 HTML5 中相对较新(仅在2013 年 8 月的 HTML5 CR 中添加)。当前在您的 XHTML 文档中的其他 HTML5 标记已经存在更长的时间(早在 2008 年)。Eclipse 根本无法识别<main>为在默认 XML 命名空间中注册的标记,如http://www.w3.org/1999/xhtml. Eclipse 拥有一个已注册标签的内部列表。如果升级到最新的 Eclipse (SR) 版本不能解决问题,那么最好的办法是将此问题报告给 Eclipse 人员。同时,只需选择快速修复选项“Ignore 'main' element in HTML5 validation”


与具体问题无关,XML prolog 不属于那里。摆脱它。此外,我还想知道“header”、“nav”、“main”和“footer”是整个 JSF 组件的必要性。我并没有真正看到任何有用的现实世界设备。您很可能只是将它们保留为纯 HTML。这可以为您节省不必要的开销。

也可以看看:

于 2015-12-01T09:07:30.140 回答