如何在不更改 URL 的情况下将方法从控制器调用到 thymeleaf

How can I call a method from the controller into thymeleaf without changing the URL

我有一个带有 Thymeleaf 的 html 页面,我在那个页面上有一个按钮。该按钮正在调用控制器中的方法,我已经使用 /addService 进行了映射,但它 return /index 页面(因为我已经在该页面中并且我想留在其中)。因此,当我按下按钮时,它会将我重定向到索引页面,但 URL 已被 /addService 更改。我想保留在 URL 中没有 /assService 的索引页中。在我的表单和控制器代码下方。我怎样才能避免这种行为? 提前致谢。

我的index.html

<form action="#" th:object="${serviceOffered}" th:action="@{addService}" method="POST">
    <input type="hidden" th:value="${serviceOffered.name}" name="name"/>
    <button type="submit" class="btn">
        <i class="fas fa-plus"></i>
    </button>
</form>

我的控制器

@RequestMapping(value="addService", method = RequestMethod.GET)
public ModelAndView getServiceSelected() {

    ModelAndView modelAndView = new ModelAndView();
    ServiceOffered serviceOffered = new ServiceOffered();

    modelAndView.addObject("serviceOffered", serviceOffered);

    modelAndView.setViewName("/index");
    return modelAndView;
}

假设您使用 Spring MVC,您应该将 RequestMethod 更改为 POST,因为您正在 POST 创建表单。否则请求处理不正确。

使用重定向

modelAndView.setViewName("redirect:/");

并定义你的 url "/"

@GetMapping("/")
public String indexPage() {
    return "index":
}