如何在同一Spring MVC控制器类中将HashMap对象从一种方法传递到另一种方法

时间:2019-04-03 04:26:02

标签: java spring

我在Spring MVC控制器类中有两种服务(方法)。现在我想将Map Object从一个方法移动到另一个带有值的方法。

   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
   }
  }

有什么办法可以这样 请给出解决方案。 预先感谢

2 个答案:

答案 0 :(得分: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.
   }
  }

答案 1 :(得分:-1)

您可以尝试从reg重定向method.from以参数更新