使用SpringMVC视图转发的一个问题

@Controller
@RequestMapping("/user")
public class UserAction {
    @Autowired
    private UserService2 userService;

    @RequestMapping("/login")
    public ModelAndView login(HttpServletRequest request,HttpServletResponse response) {
        ModelAndView mv = new ModelAndView();
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        User user = userService.getUser(username, password);
        HttpSession session = request.getSession();
        session.setAttribute("user", user);
        mv.setViewName("/main");
        return mv;
    }
}

请求login,能返回main.jsp页面的响应内容:
图片描述
但是却不能跳转到main.jsp页面。
这是怎么回事呢?

阅读 3.5k
1 个回答

ModelAndView 不是很熟悉,都用 Map, 还有,我对重定向和转发一直分不清楚,我就知道,如果要跳转页面就用 return "redirect:/login/"; 如果是在页面上显示数据就用 return "main"; 也就是用 main 模板

java@Controller
@RequestMapping("/user")
public class UserAction {
    @Autowired
    private UserService2 userService;

    @RequestMapping("/login")
    public String login(Map<String, Object> map, HttpServletRequest request,HttpServletResponse response) {

        String username = request.getParameter("username");
        String password = request.getParameter("password");
        User user = userService.getUser(username, password);
        HttpSession session = request.getSession();
        session.setAttribute("user", user);

        // 这个是跳转到 `/login/` 页面
        // return "redirect:/login/";

        // 这个是用 `main` 模板
        return "main";
    }
}

还有,一般会把账号密码放在参数里面传过来, 这个里面 Map 应该就没用

java@Controller
@RequestMapping("/user")
public class UserAction {
    @Autowired
    private UserService2 userService;

    @RequestMapping("/login")
    public String login(@RequestParam("username") String username, @RequestParam("password") String password, Map<String, Object> map, HttpSession session) {

        User user = userService.getUser(username, password);

        session.setAttribute("user", user);

        // return "redirect:/login/";

        return "main";
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题