В Spring framework, как передать параметры другому контроллеру - PullRequest
0 голосов
/ 19 июня 2020

Можно ли передавать параметры от одного контроллера к другому?

@ Controller publi c class ICentraSrcCtrlLoginController {

@ PostMapping ("/ iCentraSrcCtrlLogin") publi c ModelAndView iCentraSrc (@ModelAttribute ICentraSrcCtrlLogin inp, Модель модели) {

ICentraSrcCtrl iCentraSrcCtrl = new ICentraSrcCtrl();

Map<String, Object> myModel = new HashMap<String, Object>();

myModel.put("iCentraPassWd", inp.getiCentraPassWd());
myModel.put("UsrPassWd", inp.getUsrPassWd());
myModel.put("iCentraSrcCtrl", iCentraSrcCtrl);

return new ModelAndView("redirect:/iCentraSrcCtrl", "iCentraSrcCtrl", myModel);


}

}

@ Controller publi c class ICentraSrcCtrlController {

@ GetMapping ("/ iCentraSrcliCtrl" c String iCentraSrcCtrlForm (Модель модели) {

logger.info("iCentraSrcCtrlForm");

Map<String, Object> myModel = model.asMap();
logger.info("iCentraPassWd size: " + myModel.size());
logger.info("iCentraPassWd: " + new Boolean(myModel.containsKey("iCentraPassWd")).toString());

}} Вывод регистратора:

ICentraSrcCtrlController: iCentraPassWd размер: 0 ICentraSrcCtrlController: iCentraPassWd *: false

1 Ответ

0 голосов
/ 19 июня 2020

Используется RedirectView для передачи значений новому контроллеру.

ra.addFlashAttribute("iCentraPassWd", inp.getiCentraPassWd());
ra.addFlashAttribute("UsrPassWd", inp.getUsrPassWd());
RedirectView redirectView = new RedirectView();
redirectView.setContextRelative(true);
redirectView.setUrl("/iCentraSrcCtrl");
return redirectView;
...