Jsf 会话作用域无法使用重定向
我正在使用JSF和PrettyFaces,我需要做下一件事。我在ui中生成了4个按钮:repeat。每个commandButton都会在对话Bean中设置一个对象,然后我必须导航到另一个页面并单击按钮中设置的对象。这看起来很简单,但问题是我需要在浏览器中有一个对PrettyFaces友好的URL 进行的测试:Jsf 会话作用域无法使用重定向,jsf,redirect,cdi,prettyfaces,conversation-scope,Jsf,Redirect,Cdi,Prettyfaces,Conversation Scope,我正在使用JSF和PrettyFaces,我需要做下一件事。我在ui中生成了4个按钮:repeat。每个commandButton都会在对话Bean中设置一个对象,然后我必须导航到另一个页面并单击按钮中设置的对象。这看起来很简单,但问题是我需要在浏览器中有一个对PrettyFaces友好的URL 进行的测试: 如果我将xhtml资源作为字符串放在ReturnCommandButton中,则操作将正确导航,但URL指向xhtml资源,而不是友好的URL。(例如:…host/my-web/pric
- 如果我将xhtml资源作为字符串放在ReturnCommandButton中,则操作将正确导航,但URL指向xhtml资源,而不是友好的URL。(例如:…host/my-web/prices.xhtml)
- 如果我将友好URL作为字符串(/web/prices/)放在returncommandButton中,则该操作不会导航
- 如果我按如下方式重定向:
FacesContext context = FacesContext.getCurrentInstance(); HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest(); try { context.getExternalContext().redirect("/web/prices/");
提前感谢。看起来您没有将
cid
参数添加到重定向中。为了继续对话,必须通过POST或查询字符串传递。您可以从注入的对话对象中检索的值。您使用的是哪个版本的PrettyFaces?问题是bean在重定向后将无法存活。最好在会话中存储数据,并在处理prices.xhtml页面的bean的@PostConstruct
中检索数据。我相信@LightGuard是正确的。如果以编程方式执行重定向,则需要手动添加CID参数。