我有这个片段:
<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>
我注意到当选择上面a4j:区域中的yes按钮时,一旦完成了支持bean方法reloadCongi()
,就不会运行javascript window.location.reload()
。为什么是这样?我还注意到reRender属性中的元素也没有reRendered。这是为什么?
修改的 从第一个评论到这个问题的方法是:
public void reloadConfig() {
logger.info("Reloading config.");
pct = pctBackup;
feeds = pct.getFeed();
setSysMsg("Reloaded config OK.", "ok");
}
我想也许我需要根据上面的内容将返回类型设置为true或false,看看是否有效。
答案 0 :(得分:0)
某些插件可能会影响'oncomplete'事件的触发。 如果您没有选项,请开始禁用某些插件以查看其是否有效。 具体来说,我遇到了与Firefox 14.0.1和Firebug 1.7.3相同的问题。 一旦我禁用了Firebug,'oncomplete'再次起作用。