Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Spring/MVC中返回JSP后如何保持页面位置_Java_Spring_Jsp_Spring Mvc - Fatal编程技术网

Java 在Spring/MVC中返回JSP后如何保持页面位置

Java 在Spring/MVC中返回JSP后如何保持页面位置,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我在一个平台上工作,有评论、消息等。。。 令人惊讶的是,我在任何地方都找不到答案 我试图在post方法之后保持页面的相同位置,当我从控制器返回jsp时。 问题是,无论何时我发送一条示例消息,或发布一条评论,页面都会返回,但返回到顶部位置,这既烦人又无效。 从控制器返回或重定向后,如何使页面和滚动条保持在相同的位置 我将发布一些示例代码: @RequestMapping(value = "/{recipient}", method = RequestMethod.POST) public Stri

我在一个平台上工作,有评论、消息等。。。 令人惊讶的是,我在任何地方都找不到答案

我试图在post方法之后保持页面的相同位置,当我从
控制器返回
jsp
时。 问题是,无论何时我发送一条示例消息,或发布一条评论,页面都会返回,但返回到顶部位置,这既烦人又无效。 从控制器返回或重定向后,如何使页面和滚动条保持在相同的位置

我将发布一些示例代码:

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

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

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

重要部分
这个脚本很酷!

发送请求之前,请使用js将当前滚动位置保存在会话存储中。然后,当视图重新加载时,使用js从会话存储中检索值,并将其分配给文档或body/div元素的scrollTop属性


请注意,如果在整个文档准备就绪时加载此js代码,您可能会在设置检索值之前看到初始状态(scrollTop=0)。因此,一旦要滚动的元素存在,就必须立即执行这段js代码。

为什么不在整个流程中跟踪原始位置并使用它来保持状态?这是一个有效的选项,但我找不到任何地方如何跟踪位置:(看起来你需要在转发或重定向URL中包含锚定链接。或者你应该只使用AJAX。是的,AJAX也是一个有效的选项,但是,我不懂JavaScript,编写AJAX函数是我做不到的。我想学习JavaScript,这样我就可以自己做这些事情,但我找不到任何好的教程用Spring、MVC和Ajax:/我知道我应该使用异步通信到服务器。我的问题是如何。你将需要使用Ajax来做这件事。有很多JavaScript框架支持这个简单的语法。考虑查看或类似框架。
 <a name="myAnchor">Important Section</a>
 <section class="important">Javscript is cool!</section>