1

我使用 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");
}
4

1 回答 1

1

一个ViewScopedbean 将无法在任何 GET 请求中存活,即使是在同一页面上。

它只会在 Ajax 和 POST 请求中存活,同时保持在同一页面上。

我怀疑你需要一个SessionScopedConversationScoped豆子。

于 2013-07-09T11:56:52.110 回答