加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

JSF flash keepMessages属性是否仍然存在?

发布时间:2020-12-15 07:24:06 所属栏目:百科 来源:网络整理
导读:我有一个JSF问题,我认为可以通过添加对FacesContext.getCurrentInstance()的调用来解决.getExternalContext().getFlash().setKeepMessages(true);.但是,我不清楚其中的一些含义. keepMessages属性是否在整个应用程序中保持为真? 这是一个成熟的应用程序,所
我有一个JSF问题,我认为可以通过添加对FacesContext.getCurrentInstance()的调用来解决.getExternalContext().getFlash().setKeepMessages(true);.但是,我不清楚其中的一些含义. keepMessages属性是否在整个应用程序中保持为真?

这是一个成熟的应用程序,所以我担心设置这个属性会导致一堆消息突然弹出.如果它仍然存在,是否有任何方法我可以为下一个重定向设置此属性?或者我是否需要在某处手动将其切换回假?

解决方法

Will the keepMessages property remain true across the application?

不,它仅适用于当前的“闪存会话”.即只是当前的HTTP请求.它在同一会话的下一个请求中被清除.

另见class’ javadoc:

The Flash concept is taken from Ruby on Rails and provides a way to pass temporary objects between the user views generated by the faces lifecycle. As in Rails,anything one places in the flash will be exposed to the next view encountered by the same user session and then cleared out.

而method’s javadoc:

setKeepMessages

Parameters:

newValue – the new value for this property on this session

但是,应该注意到Mojarra有几个与闪存范围有关的严重问题.例如.导航到其他路径时,不会显示该消息.或者当您碰巧导航到同一路径时,该消息将重新出现在不同的窗口中.那种事.然而,自Mojarra 2.1.18以来,所有这些问题都已得到解决.只留下了一个安全漏洞,参见issue 2126,由我的同事Arjan Tijms发现并报告.只要您不将敏感信息放入信用卡号等闪存消息中,这就无害了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读