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

使用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页面。
这是怎么回事呢?


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";
    }
}
【热门文章】
【热门文章】