我的JSF template.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无法正确验证这一点。
答案 0 :(得分:5)
这不是JSF问题。删除passthrough元素触发器jsf:id
时,您仍会遇到完全相同的问题。在XHTML文件中的任何地方不使用JSF标记/属性时,你甚至会遇到完全相同的问题。
<main>
标记在HTML5中相对较新(仅在HTML5 CR of August 2013中添加)。目前在您的XHTML文档中的其他HTML5标签已经存在更长时间(远在2008年)。 Eclipse根本不会将<main>
识别为http://www.w3.org/1999/xhtml
标识的默认XML命名空间中注册的标记。 Eclipse拥有已注册标记的内部列表。如果升级到最新的Eclipse(SR)版本并没有解决问题,那么最好的办法就是向Eclipse人员报告这个问题。同时,只需选择快速修复选项&#34;忽略&#39; main&#39; HTML5验证中的元素&#34; 。
无关具体问题,XML序言并不属于那里。摆脱它。此外,我也想知道&#34;标题&#34;,&#34; nav&#34;,&#34; main&#34;的必要性。和&#34;页脚&#34;是整个JSF组件。我真的没有看到任何有用的真实世界用具。你最有可能只是保持纯HTML。这样可以免除不必要的开销。