我在index.xhtml
中有以下菜单项
<p:menuitem ajax="false" value="A" action="#{bean.start('A')}" />
<p:menuitem ajax="false" value="B" action="#{bean.start('B')}" />
当bean为ViewScoped
时,我的支持bean上的以下代码不起作用(我不想将其设为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"
}
我知道每次更改视图后都会回收视图范围的bean,并且必须从index.xhtml
开始,并且根据用户的选择,应用程序将显示a.xhtml
或b.xhtml
继续处理其他数据。
我在想什么吗?
关于这种导航的最佳实践是什么?
顺便说一句,我正在将JSF 2.2与Payara 4一起使用