Jsf 在后台处理ViewExpiredException并还原表单值

Jsf 在后台处理ViewExpiredException并还原表单值,jsf,jsf-2.2,omnifaces,viewexpiredexception,Jsf,Jsf 2.2,Omnifaces,Viewexpiredexception,是否有一个无数据库、primefaces和“保持会话活动”的解决方案来防止或处理ViewExpiredException,并在恢复表单输入时在后台静默处理 例如,具有“保持登录cookie”的用户不希望被重定向到某种错误或起始页;他填写一些表单值,一小时后返回,然后在提交表单时,使用以前的输入重新创建相同的视图,并再次执行底层requestscope bean的提交操作 我已经注意到了omnifaces和mojarras <o:enableRestorableView />

是否有一个无数据库、primefaces和“保持会话活动”的解决方案来防止或处理ViewExpiredException,并在恢复表单输入时在后台静默处理

例如,具有“保持登录cookie”的用户不希望被重定向到某种错误或起始页;他填写一些表单值,一小时后返回,然后在提交表单时,使用以前的输入重新创建相同的视图,并再次执行底层requestscope bean的提交操作

我已经注意到了omnifaces和mojarras

  <o:enableRestorableView />
  <f:view transient="true"> 

但当我们谈论永久登录用户时,如果这是正确的方法,我不是舒尔

谢谢你指出了正确的方向

使用以前的输入重新创建相同的视图,并再次执行底层requestscope bean的提交操作

正是为了满足这一需求,透明地重新创建和恢复与请求作用域bean绑定的过期JSF表单,
中的无状态JSF才是正确的解决方案

在这种特定情况下,不需要使用此选项。它只在透明地重新创建和恢复绑定到视图作用域bean的过期JSF表单时有用。您只需根据其
@PostConstruct
中的请求参数手动填充视图范围的bean属性

换句话说,您不需要混合这些解决方案。这在技术上没有意义,因为视图范围的bean在无状态JSF中毫无用处,它们的行为类似于请求范围的bean

另见:

那么,将sessionscope用户作为具有底层瞬态视图的requestscope bean中的managedproperty是否有效?因此,如果有必要,我会自动登录他-至少我看到,当使用transient-approach在浏览器中删除JSESSIONID cookie时,输入数据是幸运地提交的。从技术上讲,这取决于所使用的安全API/框架,但对于任何合适的API/框架,都应该是这样。