2013-06-27 5 views
0

Мне нужно перейти на страницу, выбрав строку таблицы данных. Использование ajax-события имеет некоторые проблемы.Передача параметров по URL-адресу в JSF

FacesContext context = FacesContext.getCurrentInstance(); 
NavigationHandler navigationHandler = context.getApplication().getNavigationHandler(); 
navigationHandler.handleNavigation(context, null, "/views/questionnaires/viewDetails.xhtml?faces-redirect=true&questionnaireId=" + 1); 

Но также мне нужно передать параметр в целевой компонент страницы.

@ManagedProperty(value = "#{param.questionnaireId}") 
private Long questionnaireId; 

И это не работает. Как это сделать правильно?

ответ

0

Наиболее очевидным, что нужно сделать, является то, что вам нужно включить includeViewParams=true в этот URL-адрес для параметра, чтобы пережить перенаправление. Таким образом, у вас будет:

navigationHandler.handleNavigation(context, null, "/views/questionnaires/viewDetails.xhtml?faces-redirect=true&includeViewParams=true&questionnaireId=" + 1); 

Другой проблемой может быть область целевого компонента. В соответствии с спецификацией JSF, @ViewScoped бобы являются недопустимыми целями для #param фасовочная инъекция

Смежные вопросы