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