Spring 如何将模型数据从一个控制器传递到另一个控制器
我有一个控制器——一个类似这样的类:Spring 如何将模型数据从一个控制器传递到另一个控制器,spring,spring-mvc,spring-boot,Spring,Spring Mvc,Spring Boot,我有一个控制器——一个类似这样的类: @PostMapping("/otp") public String otpSubmit(@RequestParam("token") String token, HttpSession session, Model model) throws IOException { Long enrollment = (Long) session.getAttribute("enrollment"); BaseResponse otpResponse = otpRe
@PostMapping("/otp")
public String otpSubmit(@RequestParam("token") String token, HttpSession session, Model model) throws IOException {
Long enrollment = (Long) session.getAttribute("enrollment");
BaseResponse otpResponse = otpRestClient.validateOTP(enrollment, token);
if(otpResponse.getCode().equals("1020")) {
model.addAttribute("object", otpResponse.getPayload());
return "redirect:/password";
}
model.addAttribute("errorCode", otpResponse.getCode());
model.addAttribute("errorMessage", otpResponse.getMessage());
return "/otp";
}
我想要的是简单的(我认为)传递model.addAttribute(“object”,otpResponse.getPayload())代码>到controller-B类,以便我可以在另一个视图中访问该数据
如何将其注入controller-B类?您可以将此“对象o=otpResponse.getPayload()”对象保存在全局变量中,以便以后可以从任何控制器访问它。通过添加重定向属性,我们可以传递模型数据
这是控制器
public String controlMapping1(
@ModelAttribute("mapping1Form") final Model model,
final RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute("mapping1Form", model);
return "redirect:mapping2";
}
这是控制器2
public String controlMapping2(
@ModelAttribute("mapping1Form") final Model model) {
model.addAttribute("transformationForm", model);
return "view_name";
}您可以将另一个控制器注入该控制器,并调用将模型作为参数传递的方法。说@Autowired OtherController otherCtrl
。。。然后在otpSubmit方法中otherCtrl.someMethod(model)
。但我不知道这是否是一个好的做法。