AJAX 组件

Java™ 窗口小部件库(JWL)AJAX 组件用来动态地替换页面中面板标记的内容,而不在浏览器窗口中替换该页面。这些标记使您能够创建更为连续而稳定的用户界面。带有页面的用户界面不再需要提交/请求整个页面,而是,可以在输入数据时对页面的某些部分进行更改。

JWL AJAX 标记是作为任何 JWL 面板标记的子标记添加的。它们的内容定义面板的备用内容。当 JWL GET 操作对该标记执行操作时,即,诸如单击之类的 JavaScript™ 事件调用 JWL GET 操作时,将对服务器发回请求,以将新内容显示在面板中。服务器将计算新内容,根据需要更新页面中的对象树,将该内容返回给该面板中插入的客户机,从而替换面板的现有内容。

在向服务器请求内容时,AJAX 组件可以执行 HTTP GET 请求(子请求)或 HTTP SUBMIT 请求(子请求)。它们可以请求内容,也可以提交包含该面板的表单并接收处理提交后得到的面板。ajaxRefreshRequest 执行 GET,其中,附加内容是在创建该页面的页面中定义的。ajaxUpdateContent 执行 SUBMIT,同样,附加内容是在创建该页面的页面中定义的。ajaxRefreshRequest 可以将参数从客户机传递至服务器,以便指示所要生成的内容或者内容生成方式。第三个 AJAX 组件 ajaxExternalRequest 可以用来向除初始 JSF 页面以外的来源请求内容。

在使用 ajaxRefreshRequestajaxUpdateContent 时,您可以将这些标记想象成仅仅定义面板标记中的备用内容。面板先是包含初始内容,接着嵌入由 AJAX 标记定义的附加内容。最初,面板显示初始内容。当客户机代码对该标记执行操作时,初始内容被 AJAX 标记定义的附加内容替换。

仅对页面添加 JWL AJAX 标记是没有任何作用的。为了让页面接收新内容,必须在该页面中至少编码一个 JWL GET 操作。GET 操作将导致检索由 AJAX 标记定义的新内容。

提供了以下 AJAX 标记:

选用板上最初处于隐藏状态的组件在表中将用其名称旁边的星号(*)表示。

表 1. AJAX 组件
组件 标记名 描述
获取内容 <hx:ajaxRefreshRequest> 定义同一 JSF 页面的内容如何替换父标记的现有内容。内容是使用 HTTP GET 请求(子请求)检索的。
更新内容 <hx:ajaxRefreshSubmit> 定义同一 JSF 页面的内容如何替换父标记的现有内容。内容是使用 HTTP SUBMIT 请求(子请求)检索的。
获取外部内容 <hx:ajaxExternalRequest> 定义其他页面的内容如何替换父标记的内容。内容是使用对任意数据源执行的 HTTP GET 请求(子请求)检索的。
相关概念
异步 JavaScript 和 XML(AJAX)组件
JavaServer Faces(JSF)概述
JSF 窗口小部件库(JWL)
使用 JavaServer Faces(JSF)开发 Web 应用程序

反馈