Web流忽略JSF视图的STATE_SAVING_METHOD_CLIENT?

时间:2012-01-26 22:38:58

标签: java jsf spring-webflow

我有一个使用带有Facelets的Spring Web Flow作为视图技术的Web应用程序。我已经设置了上下文参数

<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>

但我注意到我的会话大小变得非常大。经过进一步调查,我意识到FlowViewStateManager持有对象的极大引用。当我查看这个类的代码时,我看到以下方法

public boolean isSavingStateInClient(FacesContext context) {

if (!JsfUtils.isFlowRequest()) {
    return delegate.isSavingStateInClient(context);
} 
else {
    return false;
}
}

if (!JsfUtils.isFlowRequest()) { return delegate.isSavingStateInClient(context); } else { return false; } }

因此,如果请求是流请求,Web Flow将在服务器端保存JSF视图状态,而不管上下文参数如何。这背后的原因是什么,无论如何我可以用Web Flow存储状态客户端吗?

0 个答案:

没有答案