JSF 2.0 View Scope"后退按钮"安全吗?例如,如果我在View Scope中存储模型并从第1页,第2页,第3页到第4页,沿途修改模型对象(通过输入字段),然后点击后退按钮两次返回页面2并进行更改(再次转到第3页),视图范围中的模型是否仅包含最初呈现第2页时所做的更改,还是后续页面的更改?
Oracle ADF具有/称之为"进程范围"的东西,它通过标记放置到会话中的内容来处理此问题,因此每个页面都有自己的模型副本.
Bal*_*usC 18
首先,视图范围绑定到特定页面/视图.多个视图不会共享相同的视图范围bean.视图范围以初始GET请求开始,并在POST操作使用非null
返回值导航时停止.
通常存在以下场景,具体取决于是否指示浏览器缓存页面以及JSF状态保存配置.我假设这些页面之间的导航是通过POST请求进行的(因为它听起来很像"向导"场景).
按下后退按钮时:
javax.faces.STATE_SAVING_METHOD
配置设置:
server
(默认值),ViewExpiredException
则会发生a,因为在POST导航之后,从一个页面到另一个页面,视图状态在服务器端被删除.client
,则它将起作用,因为整个视图状态包含在表单的隐藏输入字段中.autocomplete="off"
输入组件添加属性可以禁用此功能.当您在此页面上执行POST请求时,无论JSF状态保存方法如何,它都将正常工作.在单个视图上执行"向导"方案更容易,该视图包含有条件渲染的步骤,并在向导部分本身提供后退按钮.
归档时间: |
|
查看次数: |
8745 次 |
最近记录: |