Java 从Jquery调用Bean方法

Java 从Jquery调用Bean方法,java,jquery,jsf,Java,Jquery,Jsf,可以从Jquery调用Bean吗?我的要求如下: 我有一个基于JSF1.2的Servlet 如果用户空闲一段时间,我将使其会话无效。在使会话无效前1分钟,我正在显示Jquery对话框。用户在对话框中有两个选项。“是,我想继续”将延长会话。“不,我想注销”将注销用户 当用户单击“No I want logout”时,我想调用bean方法更新数据库并使会话无效 下面是代码 'No, Log out': function(){ $j.idleTimeout.options.onTimeout.cal

可以从Jquery调用Bean吗?我的要求如下:

我有一个基于JSF1.2的Servlet

如果用户空闲一段时间,我将使其会话无效。在使会话无效前1分钟,我正在显示Jquery对话框。用户在对话框中有两个选项。“是,我想继续”将延长会话。“不,我想注销”将注销用户

当用户单击“No I want logout”时,我想调用bean方法更新数据库并使会话无效

下面是代码

'No, Log out': function(){
 $j.idleTimeout.options.onTimeout.call($j.post('//This is where am stuck',function()
我想在$j.post中调用bean,以便在bean中执行一些清理活动

如何做到这一点


关于,

您不能直接访问这些方法,您必须让servlet处理您的请求并为您调用该方法,然后以json格式返回数据。例如,您不能直接访问这些方法,您必须让servlet处理您的请求,并为您调用该方法,然后以json格式返回数据。例如,您可以使用隐藏(
style=“display:none”
)命令按钮和指向bean中方法的操作,并从jquery中调用
。单击()

像这样的

<h:commandButton id="myButton" action="#{myBean.myInvalidateMethod}" style="display:none"/>

或者,您可以从jsf页面调用servlet,类似于这个答案,您可以使用一个隐藏的(
style=“display:none”
)命令按钮,操作指向bean中的方法,然后从jquery调用一个
。单击()

像这样的

<h:commandButton id="myButton" action="#{myBean.myInvalidateMethod}" style="display:none"/>

或者,您可以从jsf页面调用servlet,与此答案类似

如果最终用户在对话框显示1分钟后单击“是”,该怎么办?@BalusC:当用户单击“是,我想继续”时,我调用一个JSP页面(extend_session.JSP)。此JSP页面中没有任何内容。因此,当用户点击此JSP页面时(在会话无效触发之前),会话将被扩展。这样,用户可以继续浏览。如果用户未单击“是”,则会在1分钟内发生会话失效,用户将被重定向到登录页面。您说过该对话框在会话失效前1分钟显示。因此,如果对话框显示时间超过1分钟(例如,因为最终用户外出吃午饭、上厕所或抽烟等),则会话在服务器中已经无效(至少,您是这样认为的)。@BalusC:session timeout在我的服务器中设置为15分钟。对话框将在第14分钟显示,它将启动从59到1的计数器。如果用户没有单击“是”,当计数器值变为0时,表示达到15分钟,服务器将发生会话无效。我已经编写了侦听器(HttpSessionListener),可以调用它。在这里,我正在处理清理代码(如调用DB等),并最终再次重定向到登录页面。如果在对话框显示1分钟后最终用户单击“是”怎么办?@BalusC:当用户单击“是,我想继续”时,我调用一个JSP页面(extend_session.JSP)。此JSP页面中没有任何内容。因此,当用户点击此JSP页面时(在会话无效触发之前),会话将被扩展。这样,用户可以继续浏览。如果用户未单击“是”,则会在1分钟内发生会话失效,用户将被重定向到登录页面。您说过该对话框在会话失效前1分钟显示。因此,如果对话框显示时间超过1分钟(例如,因为最终用户外出吃午饭、上厕所或抽烟等),则会话在服务器中已经无效(至少,您是这样认为的)。@BalusC:session timeout在我的服务器中设置为15分钟。对话框将在第14分钟显示,它将启动从59到1的计数器。如果用户没有单击“是”,当计数器值变为0时,表示达到15分钟,服务器将发生会话无效。我已经编写了侦听器(HttpSessionListener),可以调用它。在这里,我处理清理代码(比如调用DB等),最后再次重定向到登录页面。