在 JSF 2.0 中混合 Ajax 和完整请求

2023-12-26

给我带来问题的 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(使用前将#替换为@)

在 JSF 2.0 中混合 Ajax 和完整请求 的相关文章

随机推荐