java—如何在spring/mvc中返回jsp后保持页面位置

eagi6jfj  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(387)

我在一个平台上工作,有评论,留言等。。。令人惊讶的是,我到处都找不到答案!
在post方法之后,当我返回一个 jspcontroller . 问题是,无论何时我发送一条示例消息,或发布一条评论,页面都会返回,但返回到最上面的位置,这既烦人又无效。从控制器返回或重定向后,如何使页面和滚动条保持在同一位置?
我将发布一些示例代码:

@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;
}
tktrz96b

tktrz96b1#

我假设单击按钮是在向服务器发送http post。为了避免整个页面的负载,您需要在web页面上使用javascript,以便与服务器的通信是异步完成的。根据服务器的响应,javascript代码需要适当地更新页面。这不应该影响网页的定位,因为从技术上讲,你从来没有离开过网页。

iovurdzv

iovurdzv2#

使用锚定链接并将文章重定向回“mypage.jsp#myanchor”

<a name="myAnchor">Important Section</a>
 <section class="important">Javscript is cool!</section>
jogvjijk

jogvjijk3#

在发送请求之前,请使用js在会话存储中保存当前滚动位置。然后,当视图重新加载时,使用js从会话存储中检索值并将其分配给document或body/div元素的scrolltop属性。
请注意,如果您在整个文档就绪时加载此js代码,您可能会在设置检索值之前看到初始状态(scrolltop=0)。因此,一旦要滚动的元素存在,这个js代码块就必须立即执行。

相关问题