在我们的应用程序中,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>
要使用上面的代码重现,请执行以下操作:
- 打开firebug的网络标签并激活持久选项
- 点击doSomething-Button
- 点击“链接到同一页面”
- =&GT;配置窗口将在导航前发送
醇>
处理请求参数:
- 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]