借助 Ajax 自动保存 JSF 表单: 第 3 部分:保存 JSF 表单中的用户输入
2009-11-10 00:00:00 来源:WEB开发网
清单 5. 配置视图恢复程序<faces-config>
...
<managed-bean>
<managed-bean-name>viewRestorer</managed-bean-name>
<managed-bean-class>autosave.ViewRestorer</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
...
</faces-config>
发送恢复请求
SupportForm.jsp 页面使用 AutoSaveScript.js 文件的 setAutoSaving() 函数激活表单自动保存功能,该文件在 第 1 部分 中提到过。本节将演示如何修改 JSF 页面从而保存当前视图的数据。
对恢复请求使用隐藏的触发器
对 ViewRestorer bean 的 valueChangeListener() 方法触发 ValueChangeEvent 的最简单的方法就是向 SupportForm.jsp 页面添加一个隐藏的元素。清单 6 演示了必须添加到 JSF 页面的代码:
清单 6. 对恢复请求使用隐藏的触发器<h:form id="supportForm">
<h:inputHidden id="restoreTrigger" value="default"
valueChangeListener="#{viewRestorer.valueChangeListener}"
immediate="true"/>
...
</h:form>
您可能想知道我们为什么使用隐藏的组件触发表单恢复。为什么不在呈现时直接恢复表单?要理解这些问题的答案,您必须了解 JSF 框架构建组件树的方式,这些组件树的值必须进行恢复。请记住,用户曾经离开了应用程序(或者浏览器崩溃),现在用户使用一个 GET 请求返回到表单页面。
更多精彩
赞助商链接