借助 Ajax 自动保存 JSF 表单: 第 3 部分:保存 JSF 表单中的用户输入
2009-11-10 00:00:00 来源:WEB开发网
清单 8. 提交请求以恢复表单数据function submitRestoreRequest() {
var restoreTrigger
= getFormElement("supportForm", "restoreTrigger");
restoreTrigger.value = "restore";
var supportForm = document.getElementById("supportForm");
supportForm.submit();
}
检验表单是否可恢复
使用 submitRestoreRequest() 发送到服务器的恢复请求将使用 POST 方法,因为这是所有 JSF 表单指定的 HTML 方法。要避免发生无限循环,只有在响应 GET 请求而生成当前页面时发送恢复请求。此外,存储库必须包含当前用户/表单组合的保存数据。isRestorable() 函数将检验这两个条件,它将对一个客户端 JavaScript 表达式求值,该表达式将包含两个在服务器端计算的 JSP/JSF EL 表达式的值(参见 清单 9):
清单 9. 验证是否可以发送恢复请求function isRestorable() {
return "${pageContext.request.method}".toUpperCase() == "GET"
&& <h:outputText value="#{viewRestorer.currentViewRestorable}"/>;
}
假设在发送 GET 请求后生成了页面,并且 ViewRestorer bean 的 isCurrentViewRestorable() 方法在服务器端返回了 true,生成的 JavaScript 函数的表达式的值为 true(参见 清单 10):
清单 10. 发出 GET 请求后生成的 JavaScript 代码function isRestorable() {
return "GET".toUpperCase() == "GET"
&& true;
}
更多精彩
赞助商链接