gpt4 book ai didi

html - JSF 2 中的纯 HTML 5 标记支持

转载 作者:太空狗 更新时间:2023-10-29 15:32:15 25 4
gpt4 key购买 nike

我想在我的 JSF 页面中使用纯 HTML 5,因为 JSF2 提供的 HTML 支持无法实现某些 UI 功能。


在 JSF 2.0 中,HTML 5 表单元素的某些属性无法在标准 JSF 输入组件中正确呈现。

例如,<input type="email"无法由 <h:inputText type="email" 呈现.

在下面给出link ,他们使用了一些纯 HTML 5 标签,如 <canvas> <header> <footer> <small>等等

现在我的问题是:

  1. 当我尝试在我的 JSF 页面中使用类型为“文本”的纯 html 输入标记时,我无法从我的托管 Bean 中检索值并将其设置到此文本框。为什么没有显示值?

  2. xhtml 页面将仅支持部分纯 HTML 5 标签或支持所有纯 HTML 5 标签

最佳答案

HTML5 支持为 added in JSF2.2 .从那时起,您可以向 JSF 组件添加直通属性:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://java.sun.com/jsf/passthrough">
<h:form>
<h:inputText p:type="email" />
</h:form>
</html>

未知的属性将被 JSF(2.0 和 2.2)忽略。如果您需要使用 JSF2.0 呈现 HTML5 属性,您可以使用 Omnifaces HTML5 Renderkit .

纯 HTML 标签就是纯 HTML 标签。它们不是 JSF 组件。因此,它们将呈现给 View ,但 JSF 不会关心它们,也不会更新您的模型。

JSF2.2 也带有 Passthrough Elements .现在可以将 HTML 标记转换为 JSF 组件:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:jsf="http://java.sun.com/jsf"
xmlns:f="http://java.sun.com/jsf/core">
<input jsf:id="foo" type="text" jsf:value="#{bean.bar}">
</html>

JSF 知道有一个 corresponding UIComponent并将此 HTML 标签转换为 h:inputText。如果没有相应的 UIComponent,JSF 将创建一个支持 ajax 的特殊 UIComponent。

另请参阅:JSF 2.2: HTML5 friendly markup

关于html - JSF 2 中的纯 HTML 5 标记支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23600823/

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