如果值绑定到html5输入类型=电子邮件,我在考虑在JSF2应用程序中的ajax-roundtrip中更新我的backing-bean时遇到了问题。
首先,我创建了一个“Html5InputRenderer”,以便JSF-runtime可以为a创建html5-markup,以便编写
“Html5InputRenderer”的核心“魔力”是:
markup.replaceAll("type=\"text\"", "type=\"email\"");
在javax.faces.renderer.Renderer的重写方法encodeEnd(..)中。
将此h:输入放入表单并使用f:ajax进行丰富:
<h:form id="form">
<f:ajax render="testOut">
<h:inputText id="test" renderedType="email" value="#{testBean.value}" />
</f:ajax>
<h:outputText id="testOut" value="#{testBean.value}" />
</h:form>
属性'renderedType'是JSF-“Html5InputRenderer”提示为h:input
测试代码段。尽管JSF-runtime调用了ajax往返,但它不会更新#{testBean.value}。
测试代码段删除属性'renderedType',一切都按预期工作。