我使用NavigationHandler#navigationHandler重定向到其他页面,但是当它触发调用的init()方法(@PostConstruct)时。为什么呢?
public void onRowSelect(SelectEvent event) throws IOException {
long time = System.currentTimeMillis();
System.out.println("JSF : QuestionnaireListBean : onRowSelect(SelectEvent event)");
FacesContext context = FacesContext.getCurrentInstance();
context.getExternalContext().getApplicationMap().put("questionnaireId", selectedQuestionnaire.getQuestionnaireId());
NavigationHandler navigationHandler = context.getApplication().getNavigationHandler();
navigationHandler.handleNavigation(context, null, "/views/questionnaires/viewDetails.xhtml?faces-redirect=true&includeViewParams=true&questionnaireId=" + selectedQuestionnaire.getQuestionnaireId());
System.out.println("JSF : QuestionnaireListBean : onRowSelect(SelectEvent event) time = " + (System.currentTimeMillis() - time) + "ms");
}
答案 0 :(得分:1)
ViewScoped
bean无法在任何GET请求中生存,即使是同一页面也是如此。
只有在停留在同一页面时,它才能在Ajax和POST请求中生效。
我怀疑你需要一个SessionScoped
或ConversationScoped
bean。