0

我正在尝试这样做:

@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(parameters)...的情况下解决这个问题吗?谢谢

4

1 回答 1

1

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

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

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

这样它就可以通过新请求的请求参数映射获得。

于 2011-05-30T12:52:51.190 回答