在后台处理ViewExpiredException并恢复表单值

时间:2016-11-22 14:55:22

标签: jsf jsf-2.2 omnifaces viewexpiredexception

是否有数据库,primefaces和" keep-session-alive" - 免费解决方案在恢复表单输入时在后台静默防止或处理ViewExpiredException?

例如,具有"的用户保持登录cookie"不希望被重定向到某种错误或开始页面;他填写了一些表单值,在一小时内返回,然后,当他提交表单时,使用之前的输入重新创建相同的视图,并再次重新执行底层的requestcope-bean的提交操作。 / p>

我已经注意到omnifaces和mojarras

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

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

感谢你指出正确的方向。

1 个答案:

答案 0 :(得分:1)

  

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

正是为了满足这一要求,透明地重新创建和恢复与请求范围内的bean绑定的过期JSF表单,<f:view transient="true">中的无状态JSF是正确的解决方案。

在这种特定情况下,<o:enableRestorableView>是不必要的。它仅对透明地重新创建和恢复与视图作用域bean绑定的过期JSF表单有用。您只需要根据@PostConstruct中的请求参数手动填充视图范围bean属性。

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

另见: