接收参数的方式:
1.HttpServletRequest方式接收
public ModelAndView test1(HttpServletRequest req){
String userName = req.getParameter("userName");
String password = req.getParameter("password");
System.out.println(userName);
System.out.println(password);
return new ModelAndView("jsp/hello");
}
2.@RequestParam方式
public ModelAndView test2(String userName,
@RequestParam("password") String pwd){
System.out.println(userName+","+pwd);
return new ModelAndView("jsp/hello");
}
3.对象的方式接收
public ModelAndView test3(User user){
System.out.println(user);
return new ModelAndView("jsp/hello");
}
4.
/**
* 使用ModelAndView传出参数 内部 HttpServletRequest的Attribute传递 到jsp页面
* ModelAndView(String viewName,Map data)data是处理结果
*/
@RequestMapping("action")
public ModelAndView test4(User user){
Map<String, Object> data = new HashMap<String, Object>();
data.put("user", user);
return new ModelAndView("jsp/hello",data);
}
5. Session的方式
/**
* session存储 可以使用HttpServletRequest的getSession方法访问
*/
@RequestMapping("action")
public ModelAndView test7(HttpServletRequest req){
HttpSession session = req.getSession();
session.setAttribute("salary", 6000.0);
return new ModelAndView("jsp/hello");
}
6.重定向:
@RequestMapping("/updateitem")
//spirngMvc可以直接接收pojo类型:要求页面上input框的name属性名称必须等于pojo的属性名称
public ModelAndView updateitem(Items items){
itemsService.updateitems(items);
//不可以加斜杠 解析不了 itemList.action
return new ModelAndView(new RedirectView("itemList.action"));
}
7.重定向
@RequestMapping("/updateitem")
//spirngMvc可以直接接收pojo类型:要求页面上input框的name属性名称必须等于pojo的属性名称
public String updateitem(Items items){
itemsService.updateitems(items);
//重定向到action 可以加斜杠 redirect:/itemList.action 解析的了
return "redirect:itemList.action";
}
使用Model和ModelMap的效果一样,如果直接使用Model,springmvc会实例化ModelMap。
如果使用Model则可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象则可以使用String返回值替代。不管是Model还是ModelAndView,其本质都是使用Request对象向jsp传递数据。