取决于您是发送重定向还是仅仅导航。
如果您要发送重定向,请将其放入 flash 范围内:
Faces.setFlashAttribute("car", car);
这在下一个 bean 的 @PostConstruct 中可用:
Car car = Faces.getFlashAttribute("car");
或者,如果您只是导航,则将其放在请求范围内:
Faces.setRequestAttribute("car", car);
这在下一个 bean 的 @PostConstruct 中可用:
Car car = Faces.getRequestAttribute("car");
另见:
请注意,我假设您非常清楚拥有两个完全独立的视图的设计选择,如果没有另一个视图,它们就不能存在(幂等),而不是拥有例如具有条件渲染内容的单个视图。并且您已经知道视图在实际被幂等请求时应该如何表现(即通过书签、共享链接、搜索机器人等)。如果没有,那么我强烈建议您仔细阅读这个问题的答案:How to navigate in JSF? How to make URL reflect current page (and not previous one)。
更新:如果您不使用 OmniFaces,请分别使用以下内容:
FacesContext.getCurrentInstance().getExternalContext().getFlash().put("car", car);
Car car = (Car) FacesContext.getCurrentInstance().getExternalContext().getFlash().get("car");
FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("car", car);
Car car = (Car) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("car");