У меня есть веб-приложение, которое использует Spring Web Flow с Facelets в качестве технологии просмотра. Я установил контекстный параметр
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
Но я заметил, что мои размеры сессий становятся достаточно большими. После дальнейшего исследования я понял, что FlowViewStateManager содержит чрезвычайно большие ссылки на объекты. Когда я смотрю на код для этого класса, я вижу следующий метод
public boolean isSavingStateInClient(FacesContext context) {</p>
<pre><code>if (!JsfUtils.isFlowRequest()) {
return delegate.isSavingStateInClient(context);
}
else {
return false;
}
}
Таким образом, создается впечатление, что Web Flow сохранит состояние просмотра JSF на стороне сервера независимо от параметра контекста, если запрос является запросом потока. С чем это связано, и могу ли я сохранить клиентскую часть состояния с помощью Web Flow?