是否可以使用JSF+;具有HTML 4/5的Facelets?
Facelets依赖于XML名称空间来处理XHTML。HTML4怎么样?据我所知,HTML5不支持名称空间。HTML5还有一些XHTML中没有的新元素。甚至HTML4和XHTML在它们支持的元素和属性方面也存在一些差异是否可以使用JSF+;具有HTML 4/5的Facelets?,html,jsf,jsf-2,xhtml,facelets,Html,Jsf,Jsf 2,Xhtml,Facelets,Facelets依赖于XML名称空间来处理XHTML。HTML4怎么样?据我所知,HTML5不支持名称空间。HTML5还有一些XHTML中没有的新元素。甚至HTML4和XHTML在它们支持的元素和属性方面也存在一些差异 问题是:是否可以使用Facelets呈现HTML4/5文档?如果是,怎么做?我读到,这应该是可能的,但我自己还没有做到。也许您应该在xHTML包装代码中使用HTML5。如果我能再次找到我掌握的信息来源,我会看看的 [编辑] 看起来,MyFaces在谷歌代码之夏做了一些工作来支持H
问题是:是否可以使用Facelets呈现HTML4/5文档?如果是,怎么做?我读到,这应该是可能的,但我自己还没有做到。也许您应该在xHTML包装代码中使用HTML5。如果我能再次找到我掌握的信息来源,我会看看的 [编辑] 看起来,MyFaces在谷歌代码之夏做了一些工作来支持HTML5呈现。我还不知道它是否应该被有效地使用
[/EDIT]提供了一些关于如何在HTML5中使用名称空间来帮助从XHTML迁移的有用信息。也许您可以尝试按照名称空间的建议应用名称空间,看看会发生什么?由于Facelets是一种基于XML的视图技术,它从本质上吸收并发出XML标记,因此您不能将其与HTML4 doctype一起使用。HTML4 doctype描述了几个不能自动关闭的元素,如
、
、
和
。但是,对于XML,您必须关闭它们,如
,
,等等。因此,使用HTML4 doctype绝对不是Facelets的选项(也就是说,当您尊重标准和/或害怕w3验证器时,即使不是所有WebBrowser,它也会在大多数WebBrowser上完美工作)
另一方面,HTML5允许XML标记。具体规定如下:
例如:
<link type="text/css" href="style.css"/>
这使得HTML5合法有效(对于客户端):
您甚至可以从ajax中引用它,如
中所示
实际上,XHTML被夸大了。它的唯一目的是使用基于XML的工具简化HTML开发,这些工具可以在服务器端操作/转换/生成HTML页面(如Facelet)。但有些初学者也不使用任何XML工具就使用它,并按原样输出,因为它“太酷了”——原因不明
别误会我。XHTML作为服务器端视图技术非常优秀。但根本不是作为客户端标记技术。它在客户端完全没有价值
另见:
<!DOCTYPE html>
<html lang="en"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>Title</title>
</h:head>
<h:body>
<h:outputText value="#{bean.text}" />
</h:body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
Some text
</body>
</html>
<!DOCTYPE html>
<html lang="en"
xmlns:jsf="http://xmlns.jcp.org/jsf"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
>
<h:head>
<title>Title</title>
</h:head>
<h:body>
<header jsf:id="header">Header</header>
<nav jsf:id="nav">Nav</nav>
<main jsf:id="main">Main</main>
<footer jsf:id="footer">Footer</footer>
</h:body>
</html>