JSF 1.2: невозможно получить значения bean-компонентов на странице xhtml

Я использую JSF 1.2. У меня есть сервлет. Когда этот сервлет срабатывает, я получаю данные из параметров запроса в doPost, и мне нужно установить их в bean-компоненте, чтобы я мог показать их на странице xhtml.

Мой код, как показано ниже.

userId= request.getParameter("userID");
MyBean myBean = new MyBean();
myBean.initialize(userId);

В методе инициализации myBean я устанавливаю значение userId в globalVariable.

В моих журналах в компоненте печатается значение globalVariable. Но он не отображается на странице xhtml.

Я перенаправляюсь на страницу xhtml в методе doPost, как показано ниже,

RequestDispatcher dispatcher = request.getRequestDispatcher("/jsp/html/index.jsf");
dispatcher.forward(request, response);

На странице index.xhtml у меня есть

<h:outputText value="#{myBean.globalVariable}"></h:outputText>

В моем фазовращателе я почти ничего не делаю. У меня просто есть метод beforPhase.

Почему я не могу распечатать значение на странице jsf, но могу распечатать значение в компоненте журнала?


person Vikas V    schedule 20.07.2012    source источник


Ответы (1)


Перед переадресацией вам нужно поместить bean-компонент в область видимости именно там, где его ожидает JSF.

Если это bean-компонент с областью действия запроса, используйте HttpServletRequest#setAttribute().

request.setAttribute("myBean", myBean);
person BalusC    schedule 20.07.2012
comment
Оно работало завораживающе. Спасибо BalusC. Если myBean ограничен сеансом? - person Vikas V; 20.07.2012
comment
Установите его как атрибут сеанса, а затем request.getSession().setAttribute("myBean", myBean). - person BalusC; 20.07.2012