Flash Scope和Request Scope的区别

Posted

技术标签:

【中文标题】Flash Scope和Request Scope的区别【英文标题】:Difference between Flash Scope and Request Scope 【发布时间】:2013-02-06 16:32:12 【问题描述】:

Flash Scope 和 View Scope 有什么区别?

有人可以举个例子解释一下吗?

问候,

【问题讨论】:

【参考方案1】:

Flash Scope From the DOC:

Flash 范围的工作方式与 Session 完全相同,但有两个 区别:Flash cookie 只为一个请求保留数据 未签名,用户可以修改。

例子:

public static Result index() 
  String message = flash("success");
  if(message == null) 
    message = "Welcome!";
  
  return ok(message);


public static Result save() 
  flash("success", "The item has been created");
  return redirect("/home");

请求范围是直截了当的,它仅针对特定请求存在。

【讨论】:

【参考方案2】:

Flash 范围旨在解决当我们将 JSF 页面重定向到另一个页面时发生的数据交换问题。

重定向 JSF 页面时产生了两个请求。第一个请求是对源 JSF 页面的回发。第二个请求是对目标 JSF 页面的初始请求。第一个范围内的请求范围内的对象在第二个请求中被清除。

为了克服这个问题,在重定向到另一个 JSF 页面时使用 Flash 范围交换数据。

查看更多:

https://docs.oracle.com/javaee/6/api/javax/faces/context/Flash.html, 或 http://planet.jboss.org/post/learning_jsf2_using_flash_scope

【讨论】:

以上是关于Flash Scope和Request Scope的区别的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# Spring源码三千问Bean的Scope有哪些?scope=request是什么原理?

scope属性的用途是啥?

spring--scope的取值和选择注意事项

Spring之5种Bean Scope

Spring-Scope

spring-scope