gpt4 book ai didi

html - JavaServer Faces 2.2 和 HTML5 支持,为什么 XHTML 仍在使用

转载 作者:行者123 更新时间:2023-11-28 04:33:12 31 4
gpt4 key购买 nike

已阅读 HTML5 support in JSF 2.2 ,我很惊讶地发现在 Netbeans 中使用新 Web 应用程序创建的模板文件中的 XHTML 文档类型与以前的 Facelets 版本相同。唯一的区别是 HTML 标记在 JSF 2.2 中读取:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">

,而不是在旧的 JSF 版本中如下所示:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">

牢记 HTML5 的 promise 而继续使用 XHTML 似乎有点不对。如果我从“注册库”而不是“服务器库”中选择它,我只能选择使用 2.2。这是否会影响框架版本应用于项目的方式?

Facelets 是否过于依赖 XHTML 而无法支持 HTML5?

最佳答案

看来您和几年前 XHTML 过度炒作期间的许多人一样误解了 XHTML 的用途。长话短说:检查our XHTML wiki page .仔细阅读。简而言之,Facelets 绝对不关心生成的 HTML 输出中使用的文档类型。您可以完美地在 Facelets 模板中声明 HTML5 文档类型。

确实不幸的是,Netbeans 默认情况下使用 XHTML 文档类型准备文档,而如今 HTML5 是推荐的文档类型。我不使用 Netbeans,但在 Eclipse 中您可以轻松编辑这些模板,甚至创建您自己的模板。您可以将整个 XHTML 文档类型替换为 HTML5 文档类型。您可以通过 Web » HTML Files » Editor » Templates 在 IDE 首选项中找到/创建这些模板。

请注意,JSF 2.2 中的 HTML5 支持与能够专门支持 HTML5 文档类型无关。相反,所有 JSF 版本都支持这一点,即使在使用遗留 JSP 时也是如此。 JSP 和 Facelets 是允许您生成 HTML 输出的 View 技术,这与 HTML5 一样完美。这也在以下密切相关的答案中进行了详细说明:Is it possible to use JSF+Facelets with HTML 4/5?

相反,JSF 2.2 中的 HTML5 支持涵盖了定义自定义 JSF 组件属性以及将自定义 HTML 元素转换为 JSF 组件的可能性。这在 JSF 2.1 及之前的版本中是不可能的。默认的 JSF 渲染器会忽略任何自定义 JSF 组件属性(包括 HTML5 推荐的 data-xxx 属性)。另请参阅以下相关答案:Custom HTML tag attributes are not rendered by JSF .在 JSF 2.2 中,您可以通过新的 http://xmlns.jcp.org/jsf/passthrough 轻松指定自定义属性。命名空间如下:

<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:inputText ... a:autocorrect="off" />

这将在 <h:inputText> 结束。不支持的属性 autocorrect实际包含在生成的 HTML 输出中。请注意,我使用 a 的 XML 命名空间前缀(“属性”)而不是 p如图the Java EE tutorial ,否则它会与默认的 XML 命名空间前缀 p 发生冲突的 PrimeFaces。

将自定义 HTML 元素(包括 HTML5 元素)转换为 JSF 组件是指定 jsf 的问题。属性,例如 jsf:id .

<html ... xmlns:jsf="http://xmlns.jcp.org/jsf">
...
<header jsf:id="header">...</header>
<main jsf:id="main">...</main>
<footer jsf:id="footer">...</footer>

那些在幕后将变成UIPanel (如 <h:panelGroup> )。是的,它们在例如<f:ajax render> .

换句话说,“HTML5 支持”只是“自定义属性支持”的另一个流行语。

关于html - JavaServer Faces 2.2 和 HTML5 支持,为什么 XHTML 仍在使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631880/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com