0

这是我的 xhtml 代码的简化版本,我无法弄清楚为什么我的save1 commandButton 在save2工作时不起作用:

   <rich:panel id="table_panel">
    <h:form>
    <rich:panel rendered="#{bean.showPanel}">
        <a4j:commandButton id="save1" value="Save" 
            action="#{bean.executeAction()}">
       </rich:panel>
       <rich:panel>
        <a4j:commandButton id="save2" value="Save2" 
            action="#{bean.executeAction()}">
       </rich:panel>
      </h:form>
    </rich:panel>

当点击一个按钮时,它会在后端更新showPanel值为true并重新渲染*table_panel*,然后commandButton save1会出现,但即使它出现了,点击后永远不会调用action executeAction() (永远不要输入进入我的方法断点)。但是,命令按钮 save2始终可以正常工作。

这两个按钮的唯一区别是它们的包装丰富:面板,一个始终存在,而另一个在某些 UI 操作后显示,因为它具有呈现“#{bean.showPanel}”属性。我没有在 firebug 上看到任何 javascript 错误。

我会很感激任何想法,在此先感谢!

4

2 回答 2

1

您是否尝试过immediate="true",我认为它可能会缩小问题范围:

<a4j:commandButton id="save1" value="Save" immediate="true"
    action="#{bean.executeAction()}">
于 2014-12-27T03:48:09.627 回答
1

尝试将 execute="@this" 明确地放在命令按钮中。

于 2013-11-08T05:06:21.677 回答