【发布时间】:2022-01-24 04:32:29
【问题描述】:
我目前正在学习 JSF,当我意识到每当我们使用 <h:form> 时,JSF 的标准行为是总是向我显示 previous 页面的 URL。浏览器,而不是 当前 页面的 URL。
我知道这与 JSF 总是将表单发布到同一页面然后只是将控制器返回给不知道页面位置已更改的浏览器的任何页面呈现给浏览器的方式有关。
似乎 JSF 已经存在了很长时间,必须有一个干净、可靠的方法来处理这个问题。如果是这样,你介意分享一下吗?
我找到了各种解决方法,但遗憾的是没有一个看起来像真正可靠的解决方案。
- 请接受 URL 具有误导性。
- 将
"?faces-redirect=true"附加到每个 bean 的操作的返回值,然后- 弄清楚如何将
@RequestScoped替换为其他东西(Flash Scopes、CDI 对话、@SessionScoped...)。 - 接受为每个用户操作进行两次 HTTP 往返。
- 弄清楚如何将
- 使用某种方法(例如,第 3 方库或自定义代码)隐藏 URL 中的页面名称,始终为每个页面使用相同的通用 URL。
如果"?faces-redirect=true" 足够好,有没有办法配置整个应用程序以这种方式处理所有请求?
【问题讨论】:
-
在这里解决了一个非常相似的问题,以防万一有人需要它stackoverflow.com/questions/15635338/…
标签: jsf url redirect navigation