我有一个JSF Web应用程序,在一些用户操作之后,它打开了与IBM MQ Q Manager的连接,即执行某些操作。 当用户离开页面(仅使用FF)或关闭浏览器时,我希望我的应用程序检测到这一点并正常关闭连接。
到目前为止我在Web上找到的只是对window.unload的引用和body标签的使用。我正在使用RichFaces和Facelets,所以没有body标签。我怎样才能将上述事件的单词传递给我的bean,以便在用户离开时让它工作?
修改的 受访者BalusC和Bozho是正确的 - 当然有一个身体标签,但在我的情况下,我没有明确指定它,它正在生成;我的index.xhtml文件包含:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:c="http://java.sun.com/jstl/core">
<f:view>...
之后我直接使用a4j和富标签等。因此问题变成了(1):是向body标签添加属性以显式添加具有所需属性的body标签的最有效方法,或者是有另一种方式?问题存在,因为我没有在我的代码中明确指定body标签,但已生成一个。 (2):在这种情况下究竟是什么产生了身体标签?
答案 0 :(得分:3)
<body>
,你必须有一个<a4j:jsFunction>
上执行window.unload
,{{1}}依次调用服务器来完成必须完成的任务答案 1 :(得分:0)
您可以使用jQuery轻松地向任何标记添加属性。在Richfaces中,您可以使用标记
<rich:jQuery>
所以要添加一个属性到body,你会这样做:
<rich:jQuery selector='("body")' timing="onload" query="attr('atribbuteName', 'atribbuteValue')" />