Обработка данных между ViewScoped ManagedBean

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

@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)...? спасибо


person quad    schedule 30.05.2011    source источник


Ответы (1)


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

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

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

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

person BalusC    schedule 30.05.2011