gpt4 book ai didi

javascript - 定时自动更新 JSP 页面

转载 作者:行者123 更新时间:2023-11-30 19:49:08 25 4
gpt4 key购买 nike

我有一个监控仪表板,它以 java spring 作为后端运行,并有一个 jsp 前端。目前,我将所有内容添加到 ModelAndView 中,包括存储所有数据并在 jsp 中显示的对象。设置 @Scheduled 确实每分钟按预期运行该方法,但不会将更新的信息输出到浏览器。

有没有办法不用每次都刷新页面就可以自动获取这些数据?下面是我正在做的代码示例。

Java Controller

@Scheduled(fixedRate = 60000)
@RequestMapping(method = RequestMethod.GET) // Set this to run every minute and return via @SendTo using the websockets
public ModelAndView getHome() {
Wrapper wrapper = new Wrapper();
UATIssues uatIssues = backgroundJobService.runGetCurrentUATIssues();
wrapper.setUatIssues(uatIssues);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("wrapper", wrapper);
modelAndView.setViewName("home");
return modelAndView;
}

Jsp文件

<table class="uatIssue">
<c:if test="${not empty uatTicketNumList}">
<c:forEach items="${uatTicketNumList}" var="uatTicketNumList">
<tr><td>${uatTicketNumList}</td></tr>
</c:forEach>
</c:if>

最佳答案

您希望您的 @Scheduled 方法返回哪个浏览器/客户端?

这不会以这种方式工作。@Scheduled 注释用于在服务器端 执行一些操作/工作。它不知道请求者(您的浏览器 - 客户端)。

为了获得新鲜的数据,您需要:

1) 从您的 JSP 页面定时调用您的 Controller 端点,即每 2 分钟一次,然后解析数据 (AJAX)。示例:A Simple AJAX with JSP example

2) 实现网络套接字,当发生变化时,您的前端将立即得到通知。更多:https://spring.io/guides/gs/messaging-stomp-websocket/

关于javascript - 定时自动更新 JSP 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54651535/

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