是否可以将JSF + Facelets与HTML 45一起使用?

是否可以将JSF + Facelets与HTML 45一起使用?,第1张

是否可以将JSF + Facelets与HTML 4/5一起使用?

由于Facelets是一种基于XML的视图技术,本质上可以吃掉并发出XML标记,因此您不能将其与HTML4文档类型一起使用。所述HTML4
DOCTYPE描述了几种元件,其不能自封闭,如

<link>
<meta>
<br>
<hr>
。然而,随着XML你不得不关闭它们像
<link/>
<meta/>
等于是使用HTML4DOCTYPE是绝对不能用于Facelets的一个选项(也就是,当你尊重的标准和/或恐惧W3验证,它将但是很好地工作在大多数(如果不是全部)网络浏览器上)。

另一方面,HTML5允许XML标记。这在第3.2.2章-元素中指定:

例:

 <link type="text/css" href="style.css"/>

作者还可以选择对HTML语法中的void元素使用相同的语法。一些作者还选择在斜杠之前包含空格,但这不是必需的。(以这种方式使用空格是从XHTML 1.0附录C中的兼容性准则继承的约定。)

<!DOCTYPE html>
即使
<?xml?>
页面顶部没有声明,我自己也一直使用JSF / Facelets。它在所有浏览器中均可完美运行。对于XHTML文档类型,您应该按照规范使用
Content-Type
application/xhtml+xml
而这只会使MSIE感到窒息(它不理解)。而且,由于它仍然是使用最广泛的浏览器之一…用替换XHTML内容类型
text/html
被认为是有害的,您也不想这样做。

根据您的论点:

HTML 5不支持名称空间。

没关系 名称空间仅对基于XML的服务器侧视图技术(如Facelets)感兴趣,后者又可以使用这些标签生成纯HTML。以下示例对Facelets合法有效:

<!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>

这将呈现合法有效的HTML5(对于客户端):

<!DOCTYPE html><html lang="en">    <head>        <title>Title</title>    </head>    <body>        Some text    </body></html>

您会看到,Facelets已经删除了XHTML声明,因为它们在客户端没有意义。

和,

此外,HTML 5还具有XHTML中不可用的一些新元素。

这也没有道理。全部与生成的输出有关。哪个可以和HTML5一样好。您唯一的问题可能是浏览器支持以及呈现HTML5特定元素的第三方JSF组件的可用性。从JSF2.2开始,可以使用新的直通元素功能将自定义元素转换为JSF组件。只需给HTML5元素一个

jsf:id
属性即可。它将在内部透明地解释为
UIPanel
JSF组件树中的实例(如
<h:panelGroup>
)。

<!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>

您甚至可以像从中一样从ajax引用它

<f:ajax render="main">

实际上,XHTML被夸大了。其唯一目的是使用基于XML的工具简化HTML开发,该工具可以在服务器端(例如Facelets) *** 纵/转换/生成HTML页面。但是一些入门者也使用它而不使用任何XML工具,并按原样输出它,因为它“很酷”(出于某些不清楚的原因)。

不要误会我的意思。XHTML非常_适合_作为服务器侧视图技术。但是根本不作为客户端标记技术。它在客户端完全没有价值。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5640988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存