您可以通过以下方式将其注册为JSF
ajax回调处理程序
jsf.ajax.addOnEvent:
<script> jsf.ajax.addonEvent(foo);</script>
与
<script> function foo(data) { var ajaxStatus = data.status; // Can be "begin", "complete" and "success". switch (ajaxStatus) { case "begin": // Right before sending ajax request. // ... break; case "complete": // Right after receiving ajax response. // ... break; case "success": // When ajax response is successfully processed. // ... break; } }</script>
其中该
data对象具有几个有用的XHR派生属性,这些属性在JSF
2.0规范的表14-4中进行了描述(单击“
评估” 链接)。这是相关的摘录:
表14-4 事件数据有效负载
名称说明/值 ------------- -----------------------------------------------------输入“事件” 状态表14-3中指定的事件之一 source触发Ajax请求的DOM元素。 responseCode Ajax请求对象“状态”(XMLHttpRequest.status); 对于“开始”事件不存在; responseXML XML响应(XMLHttpRequest.responseXML); 对于“开始”事件不存在; responseText文本响应(XMLHttpResponse.responseTxt); 对于“开始”事件不存在;
作为一种替代方法,一种XHTML声明性的方法是将脚本调用仅嵌入到带有的JSF组件中,
id然后让ajax调用重新呈现它。该组件应依次根据来有条件地呈现脚本
FacesContext#isPostback()。
<h:form> <h:commandButton value="Submit" action="#{bean.submit}"> <f:ajax render=":myscript"> </h:commandButton></h:form><h:panelGroup id="myscript"> <h:outputscript rendered="#{facesContext.postback}">foo();</h:outputscript></h:panelGroup>
但是,大多数组件库对此都有更好的抽象支持。由于您没有提到要使用哪个选项,因此可以给出更合适的答案,因此,这只是一个基于PrimeFaces命令按钮的随机示例。
<p:commandButton value="Submit" action="#{bean.submit}" oncomplete="foo();" />
请参阅所用组件库的文档。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)