0

我需要通过选择数据表行进入页面。使用 ajax 事件有一些问题。

FacesContext context = FacesContext.getCurrentInstance();
NavigationHandler navigationHandler = context.getApplication().getNavigationHandler();
navigationHandler.handleNavigation(context, null, "/views/questionnaires/viewDetails.xhtml?faces-redirect=true&questionnaireId=" + 1);

但我也需要将参数传递给目标页面 bean。

@ManagedProperty(value = "#{param.questionnaireId}")
private Long questionnaireId;

它不工作。如何正确执行?

4

1 回答 1

0

需要做的最明显的事情是,您需要includeViewParams=true在该 URL 中包含参数才能在重定向中继续存在。所以你会有:

  navigationHandler.handleNavigation(context, null, "/views/questionnaires/viewDetails.xhtml?faces-redirect=true&includeViewParams=true&questionnaireId=" + 1);

另一个问题可能是目标 bean 的范围。根据 JSF 规范,@ViewScopedbean 不是#parambean 注入的有效目标

于 2013-06-27T12:34:11.617 回答