繁体   English   中英

会话只能在Spring MVC中使用一次,

[英]Session only works one time spring mvc,

@Controller
public class LoginController {

     @RequestMapping(value = "showLogin", method = RequestMethod.GET)
     public ModelAndView showLogin(HttpServletRequest request, HttpSession session) {

     return new ModelAndView("login");
     }

    @RequestMapping(value = "login", method = RequestMethod.POST)
    public String login(HttpServletRequest request, HttpSession session) {

        String page = "login";
        String loginId = request.getParameter("loginId");
        String password = request.getParameter("password");
    //  HttpSession session = request.getSession();
        session.setAttribute("USERNAME", loginId);

        if(loginId.equals("admin") && password.equals("admin")){
            session.setAttribute("loginId", "admin");
            session.setAttribute("userName", "admin");
            session.setAttribute("userDetails", "System Administrator");
            session.setAttribute("USERNAME", "admin");

            page = "home";
            return page;
        }
@RequestMapping(value = "projdet", method = RequestMethod.GET)
    public String project(
            @ModelAttribute("projMaster") ProjectMaster projMaster,
            Model model, HttpServletRequest request, HttpSession session) {

        List<ProjectMaster> allProjectlist =getMasterDaoService().getAllProjList();
    model.addAttribute("Projlist", allProjectlist);

        String page = "project";
        return page;
    }

会话只能在Spring MVC中运行一次,一旦登录返回首页,但从首页到下一个屏幕,则在其他任何控制器中均未找到用户详细信息和会话

我有一些建议:

  1. 这可能不是问题的根本原因,但是您的第三个控制器功能的请求映射URL表示“ projdet ”。
  2. 尝试在Eclipse中调试并在此行停止: List<ProjectMaster> allProjectlist =getMasterDaoService().getAllProjList(); model.addAttribute("Projlist", allProjectlist); List<ProjectMaster> allProjectlist =getMasterDaoService().getAllProjList(); model.addAttribute("Projlist", allProjectlist); 彻底检查session变量以查看其是否具有您在登录时设置的属性
  3. 在控制器中添加log或sysout语句以显示您已设置的属性。
  4. 您正在使用Spring安全性吗? 是否有任何使会话无效或调用logout

尽管这些可能无法指出确切的解决方案,但可以帮助您找出问题所在。 根据您在问题中提出的内容,没有证据表明代码中有任何错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM