我是spring的新手。我的任务是使用spring,hibernate和jsp进行登录设计和代码以及一些CURD操作。我需要将listcontroller中的列表值传递给另一个控件。
public ModelAndView loginProcess(HttpServletRequest request, HttpServletResponse response){
//.....
return new ModelAndView(new RedirectView("/dvd_hibernate/DvdController/dvdCURDOperation"),"userDetails",userDetails);}
我重定向到DvdController以及传递userDetails.Is它是正确的方法吗?如果是这样如何检索另一个控制器中的userDetails值?我没有使用注释。 请让我清楚。
答案 0 :(得分:2)
我认为你正在寻找的是Spring中的会话变量。实际上有4种方法,每种方式都有其优点和缺点。您可以在以下链接中找到更多详细信息。它在网上提供了关于这个主题的最佳解释之一。
Richard Chesterwood的"Using Sessions in Spring-MVC"
答案 1 :(得分:1)
为什么不能直接在loginProcess中调用dvdCURDOperation方法。
如果您的目标是302重定向,以便浏览器网址更改为
/dvd_hibernate/DvdController/dvdCURDOperation
您必须在Session中保存userDeatils并在dvdCURDOperation方法中检索它。
request.getSession.setAttribute("userDetails", userDetails);
return new ModelAndView("redirect:/dvd_hibernate/DvdController/dvdCURDOperation");
答案 2 :(得分:0)
正如您现在无疑发现的那样,将ModelMap传递给RedirectView将无效。其他人提到了会话变量,但如果您希望保持控制器无状态,则可以将所需的任何参数作为URL参数传递。