gpt4 book ai didi

cdi - 如何防止 JSF 对话过期

转载 作者:行者123 更新时间:2023-12-01 03:45:17 24 4
gpt4 key购买 nike

我需要防止 JSF 2.2 CDI 对话过期。我尝试实现一种心跳机制,在该机制中我使用 Ajax 单击“隐藏”按钮,该按钮又调用 servlet。但是对话仍然过期。出于测试目的,我将超时设置为 10 秒,我的代码如下所示。

// The begin conversation method in my managed bean
public void beginConversation() {
if (conversation.isTransient())
{
conversation.setTimeout(10000);
conversation.begin();
}
}

// JQuery document ready function
$(document).ready(function() {
setInterval(function(){$.get("/HeartbeatServlet");}, 5000);

});

// Heartbeat servlet
@WebServlet("/HeartbeatServlet")
public class HeartbeatServlet extends HttpServlet{

private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
{
System.out.println("Heartbeat Received");
request.getSession();
}
}

它每 5 秒打印一次“Heartbeat Recieved”文本。但对话仍然过期。

最佳答案

对话超时是对话将保持活跃的时间。它不是对话的永久跟踪器。它并不意味着在请求上保持事件状态。

没有扩展对话概念,但是您可以使用 begin(id) 重新创建对话。该对话中的任何 bean 状态都将丢失。

关于cdi - 如何防止 JSF 对话过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27492983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com