Я работаю с JSF и PrettyFaces, и мне нужно сделать следующее. У меня есть 4 кнопки, сгенерированные в ui: repeat. Каждый commandButton устанавливает объект в компоненте «Разговор», а затем мне нужно перейти на другую страницу и получить объект, который был установлен на нажатой кнопке. Это кажется довольно простым, но проблема в том, что мне нужен URL-адрес PrettyaFaces в браузере.Диалог Сфера действия не работает с перенаправлением
Тесты, проведенные:
Если я поставил Xhtml ресурс в виде строки в действии возврата CommandButton перемещается правильно, но точки URL к Xhtml ресурса, а не к довольно-граней дружественный URL. (Пример: ... host/my-web/prices.xhtml)
Если я установил дружественный URL-адрес в качестве строки (/ web/prices /) в действии элемента управления return, не перемещается.
Если я редирект следующим образом:
FacesContext context = FacesContext.getCurrentInstance(); HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest(); try { context.getExternalContext().redirect("/web/prices/");
Это правильно переходит к дружественной URL, но разговор не работает, потому что, прежде чем перенаправить я устанавливаю объект RECIVED в CommandButton действие и при навигации по этому объекту в блоке разговора является нулевым.
Любая идея, как решить эту проблему?
Заранее спасибо.
Какую версию PrettyFaces вы используете? – chkal
Проблема в том, что бобы не выживут при переадресации. Было бы лучше хранить данные в сеансе и извлекать их в '@ PostConstruct' компонента, который обрабатывает вашу страницу prices.xhtml. –