Перенаправить в другое представление в том же потоке задач программно в ADF
У меня есть один поток задач и у меня есть два вида, как это изображение:
У меня есть кнопка, чтобы перейти туда, но мне не нужно нажимать кнопку. Мне нужно перенаправить программно в другое представление с вызовом действия.
Как это назвать, потому что я использую JSFF в качестве страницы?
Если я использую этот метод:
FacesContext fctx = FacesContext.getCurrentInstance();
UIViewRoot root = fctx.getViewRoot();
//client Id of button includes naming container like id of region.
RichCommandButton button =
(RichCommandButton) root.findComponent("cb1");
ActionEvent actionEvent = new ActionEvent(button);
actionEvent.queue();
}
Я получаю ошибку, как не могу найти компонент. Если я использую идентификатор шаблона страницы, я также получаю сообщение об ошибке, так как компилятор не может найти компонент.
У вас есть другой метод, чтобы решить эту проблему, или вы можете исправить это, если я неправильно нахожу компонент?
2 ответа
Решение
2016-07-11 11:14
Для такого случая я использую этот код:
public static void navigateTo(String redirect) {
FacesContext facesContext = FacesContext.getCurrentInstance();
NavigationHandler nh = facesContext.getApplication().getNavigationHandler();
nh.handleNavigation(facesContext, null, redirect);
}
где redirect param - это имя правила потока.