据我了解,在 JSF 1.1 中,当存在这样的视图时,所有 GET 请求都会导致回发到当前视图。在 JSF 1.2 中,这发生了变化,因此 GET 总是创建一个新视图,因此书签工作。是否仍然可以使用 GET 请求保持在当前视图中,即保持 1.1 中的行为?
例子
- GET
welcome
页面,从 faceletswelcome.xhtml 文件呈现,包含<h:commandLink action="inventory">
- 单击inventory.xhtml POST 请求的链接。库存显示,浏览器 URL 仍然是
welcome
- 在浏览器中重新加载页面。在 JSF 1.1 中,重新显示库存。在 JSF 2.0 中,显示欢迎页面
- 我可以添加
?faces-redirect=true
到操作以获取库存页面的不同 URL,以便页面重新加载重新显示库存 - 如何获得 JSF 1.1 的行为,即在 GET 上重新显示库存
welcome
而不进行重定向?
我为什么要这样做:不要将 webapp 的内部结构暴露给浏览器 URL,将整个 webapp 保留在一个 URL 下,保存请求往返,平滑的增量页面更新而不是浏览器中的完整页面更改