2015-11-16 42 views
-1

在我.xhtml下面的代碼工作正常:如何顯示加載圖片(使用a4j)?

<h:commandButton id="btnConsultar" 
       action="#cadastrarProponenteBean.consultarCnpj}" 
       value="#{messages.tx_consultar}" 
       styleClass="btnAcao" /> 

但是,當我添加a4j:support

<h:commandButton id="btnConsultar" 
       action="#{cadastrarProponenteBean.consultarCnpj}" 
       value="#{messages.tx_consultar}" 
       styleClass="btnAcao"> 

    <a4j:support event="onclick" /> 
</h:commandButton> 

的應用程序中斷,我得到奇怪的錯誤,我的驗證messages('getFacesContext().addMessage')不顯示。

由於我使用a4j:support只是爲了顯示用戶單擊時的加載gif,有關如何解決此問題的任何建議?

我正在使用JSF和RichFaces。

PS:已經嘗試過a4j:commandButton代替h:commandButton但同樣的問題...

+0

*「我得到奇怪的錯誤」*好的錯誤已經代表整個答案。無法解釋它們並不意味着你應該忽略它們並跳過它們。相反,在問題中對它們進行未修改的複製。我們能夠將錯誤轉化爲非專業人員的條款,所以您最終可以解決這些問題並解決問題。當然,您也可以在搜索引擎中複製錯誤。他們經常在其他地方解釋它們。請編輯您的問題以包含錯誤。 – BalusC

+0

上帝指出,我稱之爲奇怪的錯誤: **引起:org.jboss.seam.core.LockTimeoutException:無法獲取@Synchronized組件上的鎖定:cadastrarProponenteBean ** –

回答

0

您應該使用<a4j:status>類似於:

<a4j:status id="ajaxstatus" rendered="true"> 
     <f:facet name="start"> 
      <h:panelGroup> 
       <h:graphicImage value="/images/loading.gif" /> 
      </h:panelGroup> 
     </f:facet> 
     <f:facet name="stop"> 
     </f:facet> 
    </a4j:status> 

我有它的模板。加載圖像在任何長時間操作中都會顯示。

+0

我試過你的解決方案,並得到以下錯誤: '... 47多個 致:java.lang.IllegalStateException:重複ID爲組件_viewRoot:在org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:68)狀態 在org.ajax4jsf .application.TreeStructureNode.apply(TreeStructureNode.java:92)' –

+0

'重複的Id'清楚地標識出問題出在id上。看起來您已經在頁面上擁有ID爲_ajaxstatus_的UI組件。檢查它並根據需要重命名一些或修復'a4j:status'的內容(如果存在)。一般來說,它與加載圖像的問題無關。 –

+0

用'forcedId =「true」解決,仍然不起作用。我錯過了什麼? '\t \t \t \t \t的 \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t的 \t \t \t \t \t的 \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t' –