Пример правила навигации «от действия» JSF
В правиле навигации JSF вы можете столкнуться с ситуацией, когда два отдельных действия возвращают один и тот же «outcome» на одной странице. В этом случае вы можете использовать элемент «from-action», чтобы различать два варианта навигации. Смотрите следующий пример:
1. Управляемый Боб
Управляемый бин с двумя действиями, которые возвращают один и тот же результат - «успех».
PageController.java
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;
@ManagedBean
@SessionScoped
public class PageController implements Serializable {
private static final long serialVersionUID = 1L;
public String processPage1(){
return "success";
}
public String processPage2(){
return "success";
}
}
2. Страница JSF
Страница JSF с 2 кнопками, связанными с указанными выше методамиPageController.
start.xhtml
This is start.xhtml
Оба действия приведут к одному и тому же «успеху», как JSF определит, куда идти?
3. Правило навигации
Чтобы решить эту проблему, определяет следующие правила навигации в «faces-config.xml» и использует элемент «from-action», чтобы различать одинаковые «исходные» варианты навигации.
faces-config.xml
start.xhtml #{pageController.processPage1} success page1.xhtml #{pageController.processPage2} success page2.xhtml
4. Demo
В приведенном выше случае кнопка работает следующим образом:
-
Когда нажата кнопка сaction=”#\{pageController.processPage1}”, она вернет результат «успех» и перейдет кpage1.xhtml
-
Когда нажата кнопка сaction=”#\{pageController.processPage2}”, она вернет результат «успех» и перейдет кpage2.xhtml
Скачать исходный код
Скачать -JSF-2-From-Action-Navigation-Example.zip (11 КБ)