2010-04-27 94 views
1

我已经在监听方法将下面的代码(生存请求端):请求属性/ ICEfaces的行为奇怪

​​

当按钮被点击下面的代码被执行

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

除了当处理当前请求时侦听器未被执行时,“time”为空,但是:似乎“时间”对象在请求处理中仍然存在。所以当“时间”在过去有时被设置时,它就会停留在那里......有人可以解释这一点吗?谢谢。

回答

0

在这里找到了答案: http://wiki.icefaces.org/display/ICE/Compatibility 作用域

默认情况下,ICEfaces的1.x中在什么是被称为扩展请求范围操作。简而言之,扩展请求范围是指新请求仅与视图中的更改相关联的行为。这意味着在现有视图内发生的Ajax请求不会被ICEfaces视为新请求。一个请求不被视为一个新的请求,除非它产生一个新的视图,因此请求范围的bean将不会被重新创建,直到创建一个新的视图。这种行为是可配置的,以允许请求范围的更加标准的定义,但当时被认为是必要的,因为现有的标准范围(请求,会话,应用程序,无)不够精细。