0

我有这个片段:

  <h:form>
        <h:panelGrid columns="2" styleClass="modalYesNo">
            <a4j:region id="confirmActionReloadYes">
                <a4j:commandButton value="Yes" ajaxSingle="true"
                    action="#{MyBacking.reloadConfig}"
                    oncomplete="window.location.reload()"
                    reRender="blah" />
            </a4j:region>
            <a4j:commandButton value="No"
                onclick="#{rich:component('confirmActionReload')}.hide();return false;" />
        </h:panelGrid>
    </h:form>

and I notice that when the yes button in the a4j:region above is selected, once the backing bean method reloadCongi()is complete, the javascript window.location.reload()is not run. 为什么是这样?我还注意到 reRender 属性中的元素也没有重新渲染。为什么是这样?

编辑 从第一条评论到这个问题的方法是:

public void reloadConfig() {
    logger.info("Reloading config.");
    pct = pctBackup;
    feeds = pct.getFeed();
    setSysMsg("Reloaded config OK.", "ok");
}

我在想也许我需要根据上面的设置将返回类型设置为 true 或 false ,看看是否可行。

4

1 回答 1

0

一些插件可能会影响“oncomplete”事件的触发。如果您没有选择,请开始禁用一些插件以查看它是否有效。具体来说,我对 Firefox 14.0.1 和 Firebug 1.7.3 有同样的问题。一旦我禁用了 Firebug,'oncomplete' 再次起作用。

于 2012-10-10T08:48:49.707 回答