我想在我的JSF页面中使用纯HTML 5,因为JSF2提供的HTML支持无法实现某些UI功能.
在JSF 2.0中,HTML 5表单元素的某些属性无法在标准JSF输入组件中正确呈现.
例如,<input type="email"无法呈现<h:inputText type="email".
在下面给出的链接中,他们使用了一些纯HTML 5标签等 <canvas> <header> <footer> <small>.
现在我的问题是:
当我尝试在我的JSF页面中使用类型为"text"的纯html输入标记时,我无法从我的Managed Bean中检索该值并将其设置为此文本框.为什么价值不显示?
xhtml页面中仅支持一些纯HTML 5标记,或者支持所有纯HTML 5标记
lef*_*loh 11
JSF2.2中添加了 HTML5支持.从那时起,您可以将直通属性添加到JSF-Components:
<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>
Run Code Online (Sandbox Code Playgroud)
JSF(2.0和2.2)将忽略未知的属性.如果需要使用JSF2.0呈现HTML5-Attributes,可以使用Omnifaces HTML5 Renderkit.
纯HTML标签只是纯HTML标签.它们不是JSF组件.因此,它们将呈现给视图,但JSF将不关心它们,也不会更新您的模型.
JSF2.2也带有Passthrough Elements.现在可以将HTML-Tag转换为JSF-Component:
<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>
Run Code Online (Sandbox Code Playgroud)
JSF知道有一个相应的UIComponent,并将这个HTML-Tag转换为ah:inputText.如果没有相应的UIComponent JSF将创建一个支持ajax的特殊组件.
另请参阅:JSF 2.2:HTML5友好标记
| 归档时间: |
|
| 查看次数: |
5389 次 |
| 最近记录: |