Пример правила навигации JSF «from-action»

Пример правила навигации «от действия» 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

В приведенном выше случае кнопка работает следующим образом:

  1. Когда нажата кнопка сaction=”#\{pageController.processPage1}”, она вернет результат «успех» и перейдет кpage1.xhtml

  2. Когда нажата кнопка сaction=”#\{pageController.processPage2}”, она вернет результат «успех» и перейдет кpage2.xhtml

Скачать исходный код

Скачать -JSF-2-From-Action-Navigation-Example.zip (11 КБ)