1

我在侦听器方法中有以下代码:

FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("time", new Date());

单击按钮时,将执行以下代码

System.out.println(FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("time"));

除了在处理当前请求时未执行侦听器时“时间”为空,但是:似乎“时间”对象在请求处理中幸存下来。因此,当“时间”有时在过去设定时,它会停留在那里......有人可以解释一下吗?谢谢。

4

1 回答 1

0

在这里找到答案: http: //wiki.icefaces.org/display/ICE/Compatibility Scopes

默认情况下,ICEfaces 1.x 在所谓的扩展请求范围下运行。简而言之,扩展请求范围是指新请求仅与视图更改相关联的行为。这意味着在现有视图中发生的 Ajax 请求不会被 ICEfaces 视为新请求。除非生成新视图,否则请求不会被视为新请求,因此在创建新视图之前不会重新创建请求范围的 bean。这种行为是可配置的,以允许对请求范围进行更标准的定义,但当时认为是必要的,因为现有的标准范围(请求、会话、应用程序、无)不够细化。

于 2010-04-27T08:42:53.270 回答