1

我正在使用 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 中导航该对象时为空。

知道如何解决吗?

提前致谢。

4

1 回答 1

3

看起来您没有将cid参数添加到重定向中。这必须通过 POST 或查询字符串传递,以便对话继续。您可以从注入的对话对象中检索的值。

于 2013-08-06T19:16:30.563 回答