我的应用程序基于SpringBoot和Primefaces 6.2(使用JoinFaces)。它只有一个页面,并且不涉及会话管理。如果我将UI闲置一会儿,然后尝试单击任何<p:commandButton>
或<p:fileUpload>
,则会在日志中看到javax.faces.application.ViewExpiredException
。 (我的单个支持bean仅用@Named
标记,并且我的功能都正常工作。)
我从其他帖子中了解到,我应该将javax.faces.STATE_SAVING_METHOD
设置为值client
,但是我不知道在哪里进行此设置,因为我的应用程序中没有web.xml。请指教。(或者,如果我有更好的方法来处理此问题而无需付出额外的努力,那真是太好了。我只需要页面可在页面处于空闲状态的任何bean状态下重新使用。)
[跟随其他帖子,我添加了一个ServletContextInitializer
实现,其中STATE_SAVING_METHOD
为client
。...现在我不再获得ViewExpiredexception
。
@Configuration
public class ConfigureJSFContextParameters implements ServletContextInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("javax.faces.STATE_SAVING_METHOD", "client");
}
}