我正在使用JSF和PrettyFaces,我需要做下一件事。我在ui中生成了4个按钮:重复。每个commandButton都在Conversation Bean中设置一个对象,然后我必须导航到另一个页面并获取在单击按钮中设置的对象。看起来很简单,但问题是我需要在浏览器中使用PrettyaFaces友好的URL。
完成测试:
如果我将xhtml资源作为字符串放在return commandbutton中,则操作正确导航,但URL指向xhtml资源,而不是指向漂亮的友好URL。 (例如:... host / my-web / prices.xhtml)
如果我将友好的URL作为字符串(/ web / prices /)放在return命令按钮中,则操作不会导航。
如果我按如下方式进行重定向:
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
try {
context.getExternalContext().redirect("/web/prices/");
它正确导航到友好的URL,但会话无法正常工作,因为在重定向之前,我正在设置在commandbutton操作中重新获取的对象,并且在会话bean中导航此对象时为空。
知道如何解决这个问题吗?
提前致谢。
答案 0 :(得分:3)
您似乎没有将cid
参数添加到重定向中。必须通过POST或查询字符串传递,以便继续进行对话。您可以从注入的Conversation对象中检索的值。