给我带来问题的 JSF 代码如下:
<h:panelGrid columns="3">
<!-- Minimum Password Length -->
<h:outputText value="#{i18n['xxx']}:" />
<h:inputText id="minLength"
value="#{passwordPolicies.minLength.paramValue}"
required="true">
<f:validateLongRange minimum="1"/>
<f:ajax event="valueChange"
render="@this minLengthMessage"
listener="passwordPolicies.testListener"/>
</h:inputText>
<h:message id="minLengthMessage"
for="minLength"
errorClass="error"
tooltip="true"/-->
<!-- Many other validation fields -->
<h:panelGrid/>
首先,我有一个非常相似的问题:f:ajax 侦听器从未触发 https://stackoverflow.com/questions/4900587/fajax-listener-never-fired。我必须在 JSF 页面上结合 Ajax 和完整请求。吉姆·德里斯科尔@java.net http://weblogs.java.net/blog/driscoll/archive/2009/10/01/mixing-ajax-and-full-requests-jsf-20说为了让这两个工作,必须设置一个 Ajax 错误监听器?这与之前的有很大不同吗listener的财产ajax tag?
现在,我知道我可以尝试 Primefaces p:inputText 和 p:ajax 标签,但这些需要我为所有已验证的字段设置单独的侦听器。有没有办法修复 f:ajax 错误侦听器,以便被触发并且不会出现令人讨厌的情况:
感谢您的任何意见!
您需要让命令按钮来触发 ajax 请求。
<h:commandButton value="Submit" action="#{bean.submit}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
Those <f:ajax>
听众不是强制性的。它们只是在 Jim 的文章中用作示例来说明竞争条件。哪个先被调用?显然您想首先调用侦听器。
几乎相同类型形式的实际示例可以在本章 http://balusc.blogspot.com/2011/01/jsf-20-tutorial-with-eclipse-and.html#CreateJSFHelloWorldInEclipseTheView of 本教程 http://balusc.blogspot.com/2011/01/jsf-20-tutorial-with-eclipse-and.html. Only blur
被用来代替valueChange
,因为valueChange
当你模糊时不会被调用required="true"
字段保持为空,这会导致“需要值”消息永远不会出现在此类字段上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)