借助 Ajax 自动保存 JSF 表单: 第 3 部分:保存 JSF 表单中的用户输入
2009-11-10 00:00:00 来源:WEB开发网第 2 部分 还演示了 AutoSaveListener 类的 saveCurrentView() 方法,它用于处理表单自动保存请求。本节将讨论示例应用程序的 ViewRestorer 类,该类提供了一个 restoreCurrentView() 方法和两个 JSF 事件侦听器,可处理恢复当前 JSF 视图数据的请求,简称为恢复请求。
清单 2 展示了 restoreCurrentView() 方法,它通过包装器 bean 访问存储库,以获取当前用户/视图组合的数据地图。然后,它将调用 restoreValues() 方法恢复输入组件的值。之后,restoreCurrentView() 调用 faces 上下文的 renderResponse() 方法,通知 JSF 框架实现 Render Response 阶段。在后文中您将看到,renderResponse() 调用将与 immediate 属性结合使用。
清单 2. 恢复当前 JSF 视图的数据package autosave;
import java.util.Map;
...
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
public class ViewRestorer implements java.io.Serializable {
public void restoreCurrentView() {
// Get the faces context of the current request.
FacesContext ctx = FacesContext.getCurrentInstance();
// Get the root component of the current view.
UIViewRoot root = ctx.getViewRoot();
// Get the managed bean instance wrapping the data repository.
RepositoryWrapper wrapper = RepositoryWrapper.getManagedBean(ctx);
// Get the data map for the current context.
Map<String, Object> dataMap = wrapper.getDataMap(ctx);
// Use the data map to restore the values of the JSF components.
DataMapRepository.restoreValues(root, dataMap);
// Signal the JSF framework to go to the Render Response phase.
ctx.renderResponse();
}
...
}
- ››ajax调用后台页面怎样区别ID
- ››Ajax+jQuery实现LightBox与服务器通信
- ››AJAX中利用javascript的split函数处理responseTex...
- ››自动输出SQL Server存储过程依赖列表到EXCEL文件
- ››借助 BeanKeeper 快速实现对象持久化
- ››自动分层的实现与元数据密不可分
- ››AjaXplorer 2.6.1 发布,远程文件管理
- ››AJAX + SVG 实现实时监控图表
- ››AJAX 及使用 E4X 编写 Web 服务脚本,第 2 部分:...
- ››借助传统方法使用高级 GWT 控件
- ››AJAX也有安全隐患 谈谈AJAX的安全性
- ››自动优化—拯救你的“烂”摄像头
更多精彩
赞助商链接