3 回答
TA贡献2021条经验 获得超8个赞
取决于您是发送重定向还是仅浏览。
如果要发送重定向,则将其放入Flash作用域中:
Faces.setFlashAttribute("car", car);
@PostConstruct在下一个bean的中可用:
Car car = Faces.getFlashAttribute("car");
或者,如果您只是在导航,则将其放在请求范围内:
Faces.setRequestAttribute("car", car);
@PostConstruct在下一个bean的中可用:
Car car = Faces.getRequestAttribute("car");
也可以看看:
将一个视图范围的bean注入另一个视图范围的bean会使它重新创建
如何在JSF中将对象从一页传递到另一页而无需编写转换器
请注意,我假设您非常了解这样的设计选择:拥有两个完全独立的视图,而没有另一个视图就无法存在(等幂),而不是例如使用具有条件渲染内容的单个视图。而且,您已经知道视图在实际上被幂等请求时(例如,通过书签,共享链接,搜索机器人等)应该如何表现。如果没有,那么我强烈建议您仔细阅读以下问题的答案:如何在JSF中导航?如何使URL反映当前页面(而不是上一页)。
更新:如果您不使用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");
TA贡献1804条经验 获得超2个赞
事情是,我还没有成功地安装Primefaces,据报道在这里,所以我下载primefaces-5.0.jar到WEB-INF/lib的文件夹。我可能搞砸了我的配置,这确实是第一次使用所有这些工具并使用Java EE。
TA贡献1818条经验 获得超8个赞
在运行时类路径中缺少OmniFaces。显然,Maven构建因某种原因失败了。OmniFaces必须(与PrimeFaces一样)最终位于/WEB-INF/lib
构建文件夹中。默认范围(编译)应该可以正常工作。
添加回答
举报