ice:commandButton在第二次点击后工作

时间:2013-10-31 11:12:54

标签: jsf jsf-2 icefaces

我正在使用jsf 2.0和icefaces 3.0。我已将我的应用程序从icefaces 1.8迁移到3.0但是 我面临着一个关于ice的问题:在每个jsf页面上都有commandbutton。它每次都需要第二次点击,然后将响应发送到broswer,我通过使用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 method not invoked or input value not updated

提前致谢。

2 个答案:

答案 0 :(得分:0)

而不是在ice:commandbutton中使用actionListener尝试action。有一些differences-between-action-and-actionlistener

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

同时输入=&#39;提交&#39;不是必需的,默认情况下是提交。

答案 1 :(得分:0)

您可以尝试here

所述的解决方法

如果这不起作用,你可以用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>