Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何将模型数据从一个控制器传递到另一个控制器_Spring_Spring Mvc_Spring Boot - Fatal编程技术网

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)
。但我不知道这是否是一个好的做法。