我想使用新的HTML5 <input type="date">
并将其值绑定到托管bean:
<input type="date" value="#{bean.date}"/>
我想这样做,因为我比PrimeFaces提供的更喜欢这个。
我怎样才能做到这一点?
答案 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"
。