我在一个平台上工作,有评论,留言等。。。令人惊讶的是,我到处都找不到答案!
在post方法之后,当我返回一个 jsp
从 controller
. 问题是,无论何时我发送一条示例消息,或发布一条评论,页面都会返回,但返回到最上面的位置,这既烦人又无效。从控制器返回或重定向后,如何使页面和滚动条保持在同一位置?
我将发布一些示例代码:
@RequestMapping(value = "/{recipient}", method = RequestMethod.POST)
public String chatPost(@PathVariable("recipient") String recipient, @ModelAttribute("message") Message message, Model model, Principal principal) {
Date date = new Date();
message.setCreationDate(date);
Profile recipientObj = profileService.getProfileByUsername(recipient);
messageService.sendMessageTo(message, recipientObj);
return "redirect:/message/" + recipient;
}
3条答案
按热度按时间tktrz96b1#
我假设单击按钮是在向服务器发送http post。为了避免整个页面的负载,您需要在web页面上使用javascript,以便与服务器的通信是异步完成的。根据服务器的响应,javascript代码需要适当地更新页面。这不应该影响网页的定位,因为从技术上讲,你从来没有离开过网页。
iovurdzv2#
使用锚定链接并将文章重定向回“mypage.jsp#myanchor”
jogvjijk3#
在发送请求之前,请使用js在会话存储中保存当前滚动位置。然后,当视图重新加载时,使用js从会话存储中检索值并将其分配给document或body/div元素的scrolltop属性。
请注意,如果您在整个文档就绪时加载此js代码,您可能会在设置检索值之前看到初始状态(scrolltop=0)。因此,一旦要滚动的元素存在,这个js代码块就必须立即执行。