0

我正在使用 jsf 2.0 和 icefaces 3.0。我已将我的应用程序从 icefaces 1.8 迁移到 3.0,但我在每个 jsf 页面上都面临一个 ice:commandbutton 问题。它每次都需要第二次单击,然后将响应发送到浏览器,我通过使用网络选项卡使用 IE 开发人员工具(IE 中的 F12)来调试问题。所以当我第一次击球时,我得到了以下回复:

   <?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="javax.faces.ViewState"><![CDATA[8640112048343005235:64165239481062360]]></update><extension aceCallbackParam="validationFailed">{"validationFailed":false}</extension></changes></partial-response>

并在第二次单击它工作。

以下是我的按钮代码。

<ice:commandButton value="#{msgs['submit.label']}"
                                            id="submitCmd2" type="submit"
                                            actionListener="#{applicationController.submit}"
                                            rendered="true" styleClass="buttonpurple" onclick="showLoader();"
                                            style="width: 125px; " align="center" />

但我无法理解是什么原因以及我需要使用什么解决方案来解决这个问题。我也经历了balusC链接commandButton/commandLink/ajax action/listener方法未调用或输入值未更新

提前致谢。

4

2 回答 2

0

您可以尝试此处描述的解决方法

如果这不起作用,您可以尝试使用 jsf 命令按钮的 ajax,以它自己的最佳方式。

<h:commandButton value="#{msgs['submit.label']}"
                                    id="submitCmd2" 
                                    actionListener="#{applicationController.submit}"
                                    styleClass="buttonpurple" onclick="showLoader();"
                                    style="width: 125px; " align="center">
  <f:ajax execute="id1 id2 id3...." render="@form"/>
</h:commandButton>
于 2013-11-01T03:41:21.390 回答
0

而不是在 ice:commandbutton中使用actionListenertry 。action-and-actionlistener 之间action存在一些差异。

<ice:commandButton value="#{msgs['submit.label']}"
                                        id="submitCmd2" type="submit"
                                        action="#{applicationController.submit}"
                                        rendered="true" styleClass="buttonpurple" onclick="showLoader();"
                                        style="width: 125px; " align="center" />

也不需要 type='submit',默认是提交。

于 2013-10-31T11:57:53.137 回答