我正在使用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
提前致谢。
答案 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>