如何将模型数据从一个控制器传递到另一个控制器弹簧

时间:2018-03-06 02:27:22

标签: 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 = 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类,以便我可以在另一个视图中访问该数据。

如何将此注入控制器-B类?。

2 个答案:

答案 0 :(得分:2)

通过添加redirectAttributes,我们可以传递模型数据

这是Controller one。

  public String controlMapping1(
    @ModelAttribute("mapping1Form") final Model model, 
    final RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute("mapping1Form", model);
return "redirect:mapping2";

}

这是Controller2

public String controlMapping2(
    @ModelAttribute("mapping1Form") final Model model) {
model.addAttribute("transformationForm", model);
return "view_name";  

}

答案 1 :(得分:0)

你可以保存这个"对象o = otpResponse.getPayload()" 全局变量中的对象,以便稍后您可以从任何控制器访问它。