在启用Spring Boot MVC的项目中,存在从POST控制器到GET控制器方法的重定向。
@RequestMapping(value = ..., method = RequestMethod.POST...)
public String updateOrganiser(@Valid Object1 object1, BindingResult bindingResult, RedirectAttributes redirectAttributes) {
...
Response<X> response = new Response<>();
response.setData(object1);
redirectAttributes.addAttribute("ID", object1.getId());
redirectAttributes.addFlashAttribute(String.valueOf(object1.getId()), response);
...
return URLConstants.Redirects.QUOTE; // Redirection to following Controller method
}
@RequestMapping(value = ..., method = RequestMethod.GET)
public String getPage(Model model, @RequestParam ...) {
boolean policyCantCreate = getQuote(model, sourcePhone, destinationPhone, quoteId);
...
}
但是系统中存在一种方案,可以公开第三方服务并从该服务获得响应。 在某些情况下(例如,外部服务的会话超时(或无效的会话)),以下情况(不使用最新数据更新前端)在系统中发生在上述两种控制器方法之间。 调试显示,在这些情况下,GET控制器接收到了先前的模型数据,而不是来自前端表单的最新更新数据。对于前端,Thymleaf使用了没有模板缓存的方法。 我需要澄清这种情况,以及为什么预期的路径不起作用。
(请考虑将方案的幕布显示为更新。) 谢谢。