为什么ICEfaces在使用视图范围的bean时会在页面卸载时发送dispose-window请求?

时间:2011-11-24 09:27:01

标签: jsf-2 icefaces

在我们的应用程序中,ICEfaces总是在导航到另一个JSF页面之前发送一个dispose-window请求。我理解这一点,当org.icefaces.lazyWindowScope设置为true并且当前请求中没有涉及窗口范围的bean时,不应该发生这种情况。但它发生在每个链接上,使我们的UI响应性降低。但我们的应用程序中没有任何窗口范围的bean。

是否是使用视图范围的bean时发送dispose请求的问题?是否可以禁用? 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的网络标签并激活持久选项
  2. 点击doSomething-Button
  3. 点击“链接到同一页面”
  4. =&GT;配置窗口将在导航前发送
  5. 处理请求参数:

    • 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
    • Mojarra 2.1.1
    • JRockit 1.6.0_22
    • WebLogic Server 10.3.4.0

    ICEfaces配置:

    • org.icefaces.render.auto:true [默认]
    • org.icefaces.autoid:true [默认]
    • org.icefaces.aria.enabled:true [默认]
    • org.icefaces.blockUIOnSubmit:false [default]
    • org.icefaces.compressDOM:false [默认]
    • org.icefaces.compressResources:true [默认]
    • org.icefaces.connectionLostRedirectURI:/pages/main.jsf
    • org.icefaces.deltaSubmit:false [default]
    • org.icefaces.lazyPush:true [默认]
    • org.icefaces.sessionExpiredRedirectURI:/pages/main.jsf
    • org.icefaces.standardFormSerialization:false [default]
    • org.icefaces.strictSessionTimeout:false [默认]
    • org.icefaces.windowScopeExpiration = 1000 [默认]
    • org.icefaces.mandatoryResourceConfiguration:null [default]
    • org.icefaces.uniqueResourceURLs:true [默认]
    • org.icefaces.lazyWindowScope:true [默认]
    • org.icefaces.disableDefaultErrorPopups:false [default]

1 个答案:

答案 0 :(得分:0)

请参阅上面的评论和解决方法。这是冰面上的一个错误。