在ViewScoped托管Bean之间处理数据

时间:2011-05-30 07:35:44

标签: view parameters jsf-2 scope managed-bean

我试图像这样做:

@ViewScoped
public class Bean2{
     public void saveChanges(){
         //saving changes...
         FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("id",id);
         FacesContext.getCurrentInstance().getExternalContext().redirect("page1");
     }
}

并在Bean1中从requestMap获取数据

@ViewScoped
public class Bean1{
    public Bean1(){
         String id =  FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(id);
    }
}

但是id总是NULL而RequestMap是空的。 我尝试使用getRequestParameterMap()它也是空的... 你是否知道如何解决这个问题而不改变bean的范围并且不使用getSessionMap.put(参数)......? 日Thnx

1 个答案:

答案 0 :(得分:1)

请求映射特定于HTTP请求。重定向指示浏览器发送请求。新请求也意味着新地图。

请求参数映射是请求参数的映射。因此,您可以将其作为请求参数传递。

redirect("page1?id=" + id);

这种方式可以通过新请求的请求参数映射获得。