Передача параметра в компонент ViewScoped - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть следующие пункты меню в index.xhtml

<p:menuitem ajax="false" value="A" action="#{bean.start('A')}" />
<p:menuitem ajax="false" value="B" action="#{bean.start('B')}" />

Следующий код на моем компоненте поддержки не работает, когда компонент ViewScoped (я не хочу его делать SessionScoped):

@Named
@ViewScoped
public class Bean implements Serializable {

private LetterEnum letter;

public String findBSEmpty(String str) {
    if (saison.equals("A")) {
        this.letter = LetterEnum.A;
        return "a.xhtml";
    } else {
        this.letter = LetterEnum.B;
        return "b.xhtml";
    }
}

public void doSomthing(){
    //Method called from other a.xhtml and b.xhtml
    //Processing data depending on the value of "letter"
}

Я знаю, что компоненты видимости перерабатываются после каждого изменения представления, и я должен начинать с index.xhtml, и в зависимости от выбора пользователя приложение будет отображать a.xhtmlили b.xhtml для продолжения обработки других данных.Я что-то упустил?

Каковы лучшие практики для этого вида навигации?

Кстати, я использую JSF 2.2 с Payara 4

...