Обработка данных между ViewScoped ManagedBeans - PullRequest
0 голосов
/ 30 мая 2011

Я пытаюсь сделать что-то вроде этого:

@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 (), это также пусто ... Знаете ли вы, как решить эту проблему, не изменяя область действия бинов и не используя getSessionMap.put (параметры) ...?Thnx

1 Ответ

1 голос
/ 30 мая 2011

Карта запроса относится к HTTP-запросу.Перенаправление инструктирует браузер отправить новый запрос.Новый запрос также означает новую карту.

Карта параметров запроса - это, в общем, отображение параметров запроса.Таким образом, вы могли бы вместо этого передать его в качестве параметра запроса.

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

Таким образом, он доступен в карте параметров запроса нового запроса.

...