2011-11-24 52 views
0

在我們的應用程序中,ICEfaces在導航到另一個JSF頁面之前總是發送一個dispose-window請求。盡我所知,當org.icefaces.lazyWindowScope設置爲true並且當前請求中沒有涉及窗口範圍的bean時不應該發生這種情況。但它發生在每個鏈接上,並使我們的用戶界面響應性降低。但我們的應用程序中沒有任何窗口範圍的bean。爲什麼在使用視圖範圍的bean時,ICEfaces在頁面卸載時發送處理窗口請求?

是在使用視圖範圍的bean時發送dispose請求的icefaces中的錯誤?是否可以禁用? ViewScope在JSF定義不ICEfaces的,它應該沒有這種處置要求我猜...

@ManagedBean(name="viewScopeBean") 
@ViewScoped 
public class ViewScopeBean { 
    public void doSomething(){ 
     // 
    } 
} 

而且這裏的例子JSF:

<ice:form> 
    <ice:commandButton value="doSomething" action="#{viewScopeBean.doSomething}"/> 
    <h:link outcome="index" value="Link to same page"/> 
</ice:form> 

要重現做使用上面的代碼如下:

  1. 打開Firebug的Net選項卡並激活持續的選項
  2. 點擊DoSomething的-按鈕
  3. 點擊 「鏈接到同一頁」
  4. =>處理窗口將導航之前發送

處置請求參數:

  • ice.submit.type = ice.dispose.window
  • ice.window = 4guthcbue
  • javax.faces.ViewState = -8138151632882151449%3A-6709064564386098402

環境:

  • ICEfaces的-EE 2.0.0.GA
  • ICEpush-EE 2.0.0.GA
  • 鑽嘴魚科2.1.1
  • 的JRockit 1.6.0_22
  • 的WebLogic Server 10.3。 4.0

ICEfaces的配置:

  • org.icefaces.render.auto:真正的[默認]
  • org.icefaces.autoid:真正的[默認]
  • org.icefaces.aria.enabled:真正的[默認]
  • org.icefaces。 blockUIOnSubmit:假[默認]
  • org.icefaces.compressDOM:假[默認]
  • org.icefaces.compressResources:真正的[默認]
  • org.icefaces.connectionLostRedirectURI:/pages/main.jsf
  • org.icefaces.deltaSubmit:false [defau lt]
  • org.icefaces。lazyPush:真正的[默認]
  • org.icefaces.sessionExpiredRedirectURI:/pages/main.jsf
  • org.icefaces.standardFormSerialization:假[默認]
  • org.icefaces.strictSessionTimeout:假[默認]
  • org.icefaces.windowScopeExpiration = 1000 [默認]
  • org.icefaces.mandatoryResourceConfiguration:空[默認]
  • org.icefaces.uniqueResourceURLs:真[默認]
  • org.icefaces.lazyWindowScope:真[默認]
  • org.icefaces.disableDefaultErrorPopups:假[默認]
+1

在[ICEfaces的的文檔(http://wiki.icefaces.org/display/ICE/Configuration)我發現以下內容:「請注意,如果視圖範圍映射包含任何視圖作用域豆,lazyWindowScope是不默認啓用「。但爲什麼?這意味着只要viewscoped豆參與這個請求被髮送的頁面卸載... – fischermatte

+0

所以現在看來​​,這是在ICEfaces的一個bug [http://jira.icefaces.org/browse/ICE-7513](http:// jira.icefaces.org/browse/ICE-7513) – fischermatte

+0

如果你確信沒有任何windowscoped豆,你可以一次加載頁面刪除頁面卸載回調:'window.onUnload = NULL;'。這適用於我們的應用程序。 – fischermatte

回答

0

見上述意見和解決辦法。這是冰河的一個缺陷。

相關問題