【发布时间】:2022-08-19 06:29:05
【问题描述】:
我有一个 API,每次调用都会从 Mongo 集合中返回一个随机文档。
这是代码:
AtomicInteger countSummerCamps= new AtomicInteger();
@GetMapping(\"/getRandomSummerCamps\")
public String getRandomSummerCamps(Model model) {
countSummerCamps.incrementAndGet();
if (getCountSummerCamps() <= adventureHolidaysService.countAdventureHolidays(\"summerCamps\")) {
model.addAttribute(\"randomSummerCamps\", adventureHolidaysService.findRandomAdventureHolidays(\"summerCamps\"));
return \"randomSummerCamps\";
} else {
return \"noMoreDoc\";
}
}
我的问题是什么以及我是如何尝试的。
所以在这种情况下,程序会返回 4 个 HTML 元素。之后该程序将显示一个noMoreDoc 页面。这很好用。但问题是当我刷新页面时,它仍然是页面noMoreDoc,即使我进入主页并再次点击 API,它仍然是 noMoreDoc 页面。我想避免这种情况,在用户刷新页面并返回/getRandomSummerCamps 后,在每次通话时再次向他展示随机文档。
我试图在}else{ 中设置counterSummerCamps.set(0),但我得到了Unreachable statement。
有没有办法解决这个问题,所以在用户获得noMoreDoc 页面之后,在他以任何方式返回/getRandomSummerCamps 之后,在每次通话时再次向他展示随机文档?
我尽我所能解释我尝试了什么以及我的问题是什么,请随时问我任何问题,以便我给出更好的解释。谢谢
-
您正在尝试实现分页,但问题是 HTTP 是一个无状态协议,并且您正在增加后端的变量,而不是我建议您将逻辑移动到前端(即)发送尝试访问的元素的编号并返回相应的元素,如果超出则以这种方式返回“noMoreDoc”,即使页面刷新它也会在前端设置为零。
-
我怎么能在前面消费这个?
adventureHolidaysService.countAdventureHolidays(\"summerCamps\")) {这里我调用计算集合中有多少元素的方法
标签: java