是否可以将HTML5组件(<input type =“date”/>)绑定到托管Bean属性?

时间:2012-11-21 00:53:48

标签: html5 jsf jsf-2

我想使用新的HTML5 <input type="date">并将其值绑定到托管bean:

<input type="date" value="#{bean.date}"/>

我想这样做,因为我比PrimeFaces提供的更喜欢这个。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:18)

这只有在JSF 2.2之后才有可能。此功能称为"passthrough elements"

<html xmlns:jsf="http://xmlns.jcp.org/jsf">
...
<input type="date" jsf:value="#{bean.date}" />

或者,使用"passthrough attributes"

<html xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:inputText a:type="date" value="#{bean.date}" />

如果您尚未使用JSF 2.2,则可以使用OmniFaces'Html5RenderKit。这允许您在其他<h:inputText>中使用新的HTML5属性。

<h:inputText type="date" value="#{bean.date}" />

另见

答案 1 :(得分:2)

另一种方式(仅适用于JSF 2.2)是在inputText中使用f:passThroughAttribute

<h:inputText id="yourNumberField" value="#{mainController.myBeautifulNumber}">
    <f:passThroughAttribute name="type" value="number"/>
    <f:passThroughAttribute name="step" value="0.02"/>
</h:inputText>

f:命名空间是默认的xmlns:f="http://xmlns.jcp.org/jsf/core"