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) を使用せずにこの問題を解決する方法を知っていますか? thnx

4

1 に答える 1

1

リクエスト マップは、HTTP リクエストに固有です。リダイレクトは、ブラウザーに新しい要求を送信するように指示します。新しいリクエストは、新しいマップも意味します。

リクエスト パラメータ マップは、リクエスト パラメータのマッピングです。そのため、代わりにリクエスト パラメータとして渡すことができます。

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

このようにして、新しいリクエストのリクエスト パラメータ マップで使用できます。

于 2011-05-30T12:52:51.190 に答える