使用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";

}

}

以上是 使用SpringMVC视图转发的一个问题 的全部内容, 来源链接: utcz.com/p/176590.html

回到顶部