Java Spring控制器,返回页面的特定区域

Java Spring控制器,返回页面的特定区域,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有这个html文件 <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Getting Started: Handling Form Submission</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> &l

我有这个html文件

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Getting Started: Handling Form Submission</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <h1>Form</h1>
    <form action="#" th:action="@{/greeting}" th:object="${greeting}" method="post">
        <p>Id: <input type="text" th:field="*{id}" /></p>
        <p>Message: <input type="text" th:field="*{content}" /></p>
        <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
    </form>

    <div style="height: 1200px">
    </div>

    <p id="rightHere">
      There there
    </p>
</body>
</html>

我想做的是回到这里来迎接,但我无法让它工作。你知道怎么做吗?

我认为在这里说回程问候是没有意义的。这是一个超链接,如果您正在创建RESTAPI,您将返回超链接。不确定像Spring这样的框架是否知道。假设是针对浏览器的,它将为您滚动到该元素(如果存在)。尽管我可能是错的,但我相信Spring控制器不会知道来自greetingrightHere的get-URL请求与未访问底层HTTP请求对象的greeting之间的区别,在大多数情况下,您永远不应该在应用程序中执行相同的行为

我建议您对此进行测试,确保页面上有足够的文本,这样您就可以注意到跳到id=rightshere的html元素。并在你的应用程序中的某个地方/此处的问候中添加一个超链接,看看它是否有效。我想会的,你不应该在你的Spring控制器中做任何事情

编辑:我想不清楚这里有什么问题。我假设您的意思是,当您单击网页/问候语右侧此处的链接时,您希望web浏览器导航到问候语页面,然后滚动到id为rightHere的html元素。我要告诉你的是,Spring对后面的内容一无所知,它是用于浏览器的,浏览器本身将在此处查看URL/问候语,导航到问候语,然后在此处查找id为的HTML元素,并在页面加载后滚动到那里


但是,您的意思可能是希望您的控制器返回问候页面的一个子部分,就像只返回rightHere元素一样,您可以使用模板或包含在JSP中。但很难确定你在问什么,因为你似乎不理解我写的东西,并且混合谈论两件不同的事情,返回和跳跃。。。请考虑改写你的问题,并用正确的语言简洁明了地表达你想要达到的目的。

< P>这是一个对我有用的解决方案:

@GetMapping("/greeting")
public String greetingForm(Model model) {
    model.addAttribute("greeting", new Greeting());
    return "redirect:greeting#rightHere";
}

不知道thymeleaf语法,但请确保表单的操作为“/greetingrightshere”。或者使用JavaScript在加载页面时滚动到想要的位置。目标是在控制器返回值之后加载页面时能够立即跳转到该块。不确定我是否不够清楚,或者我是否不理解你的解决方案。太好了!工作起来很有魅力!非常感谢。
@GetMapping("/greeting")
public String greetingForm(Model model) {
    model.addAttribute("greeting", new Greeting());
    return "redirect:greeting#rightHere";
}