我正在使用 JSF 和 PrettyFaces,我需要做下一件事。我在 ui:repeat 中生成了 4 个按钮。每个 commandButton 在对话 Bean 中设置一个对象,然后我必须导航到另一个页面并获取在单击的按钮中设置的对象。看起来很简单,但问题是我需要在浏览器中使用 PrettyFaces 友好的 URL。
完成的测试:
如果我将 xhtml 资源作为字符串放在 return commandbutton 操作中,则正确导航但 URL 指向 xhtml 资源,而不是漂亮的友好 URL。(例如:...host/my-web/prices.xhtml)
如果我将友好 URL 作为字符串 (/web/prices/) 放在返回命令按钮操作中,则不会导航。
如果我按如下方式进行重定向:
FacesContext context = FacesContext.getCurrentInstance(); HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest(); try { context.getExternalContext().redirect("/web/prices/");
它正确导航到友好的 URL,但对话不起作用,因为在我重定向之前,我设置了在 commandbutton 操作中接收的对象,并且当在对话 bean 中导航该对象时为空。
知道如何解决吗?
提前致谢。