Как передать объект HashMap из одного метода в другой метод в том же классе контроллера Spring MVC

#java #spring

#java #spring

Вопрос:

У меня есть две службы (методы) в классе контроллера Spring MVC.Теперь я хочу переместить объект Map из одного метода в другой метод со значениями.

    public class Controller{

   @RequestMapping(value="/reg", method=RequestMethod.POST)
   public ModelAndView loginData(@ModelAttribute("loginBean")LoginBean 
    loginBean,ModelMap model) throws IOException, ParseException
    {
        //Here i have map object with values.
    }

   @RequestMapping(value="/update",method=RequestMethod.POST)
   public ModelAndView updateForm(@ModelAttribute("frontBean")FrontBean 
   frontBean,ModelMap model)
   {
     //here i want to Map Object for update the values
   }
  }
  

есть ли какой-либо способ сделать подобное
пожалуйста, дайте решение.
Заранее спасибо

Комментарии:

1. Проблема решена, здесь я создал глобальный объект HashMap в классе контроллера, затем я прочитал объект Map, где я хочу.

2. Вы должны предоставить свой ответ в разделе ответы. Делая это, другие получат выгоду от вашего решения

Ответ №1:

Метод 1: использование HttpSession. Вы можете использовать HttpSession для хранения вашего объекта. Смотрите приведенный ниже пример

 public class Controller{

   @RequestMapping(value="/reg", method=RequestMethod.POST)
   public ModelAndView loginData(@ModelAttribute("loginBean")LoginBean 
    loginBean,ModelMap model) throws IOException, ParseException
    {
        Map map = new HashMap();
        HttpSession session = req.getSession(false);
        session.setAttribute("myMapObject", map);
    }

   @RequestMapping(value="/update",method=RequestMethod.POST)
   public ModelAndView updateForm(@ModelAttribute("frontBean")FrontBean 
   frontBean,ModelMap model)
   {
     HttpSession session = req.getSession(false);
     session.getAttribute("myMapObject", map);
     session.removeAttribute("myMapObject");
   }
  }
  

Метод 2: использование атрибута FlashAttribute. Он предоставляет способ сохранить те атрибуты, которые должны отображаться на следующей странице при перенаправлении на Post / Redirect / Get.

 public class Controller{

   @RequestMapping(value="/reg", method=RequestMethod.POST)
   public ModelAndView loginData(@ModelAttribute("loginBean")LoginBean 
    loginBean,ModelMap model,RedirectAttributes redirectAttrib) throws IOException, ParseException
    {
        Map map = new HashMap();
        redirectAttrib.addAttribute("myMap", map);
        return "redirect:/update";
    }

   @RequestMapping(value="/update",method=RequestMethod.POST)
   public ModelAndView updateForm(@ModelAttribute("frontBean")FrontBean 
   frontBean,@ModelAttribute("myMap")Map myMap,ModelMap model)
   {
  //Use myMap object accordingly.
   }
  }
  

Ответ №2:

вы можете попробовать метод перенаправления.из reg для обновления с параметром