如何在不更改 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":
}
我有一个带有 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":
}