如果值绑定到 html5 输入类型 = 电子邮件,我在考虑在 JSF2 应用程序的 ajax 往返中更新我的支持 bean 时遇到问题。
首先,我创建了一个“Html5InputRenderer”,以便 JSF-runtime 可以为 a 创建 html5-markup,以便编写
“Html5InputRenderer”的核心“魔法”是:
markup.replaceAll("type=\"text\"", "type=\"email\"");
在 javax.faces.renderer.Renderer 的重写方法 encodeEnd(..) 中。
这个 h:input 被放入一个表单并用 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 渲染 html5 标记的提示
测试片段。尽管 JSF 运行时调用了 ajax 往返,但它不会更新 #{testBean.value}。
测试删除属性“renderedType”的片段,一切都按预期工作。