我有一个使用JSF的应用程序,它有一个导航错误。主页,即index.jsp(但我有一个index.faces文件 - 此文件列在欢迎列表中)上面有一个表单。提交表单时,将调用辅助bean,它会创建一个新视图并将其设置为当前视图。此视图是网站流程中的下一页。
这是怎么回事:当用户第一次访问该网站时(或者如果浏览器历史记录被清除),表单提交将保留在同一页面上。直到第二次提交表单时才会显示以下页面。
首次点击时,网址从http://companyconnector.com/更改为http://companyconnector.com/index.faces;jsessionid= ...
有什么想法吗?
答案 0 :(得分:0)
您是否尝试将支持bean的范围从会话范围更改为请求范围?无论如何,这是哪个版本的JSF?
答案 1 :(得分:0)
这不是一个错误,这就是JSF从根本上起作用的方式:输入表单对呈现它的JSF视图执行POST请求,并且操作方法的结果与导航规则一起确定随后显示的视图。但是,这种灵活性意味着导航无法立即反映在URL中,因为提交请求的浏览器不知道应用程序将决定显示哪个视图(= URL)。毕竟,即使没有复杂的逻辑确定下一个视图,也总会有验证错误导致当前视图再次显示。
有很多方法,但它们有局限性:
<redirect/>
,但这会降低应用程序的速度