Spring框架4--Web MVC--传值
SpringMVC传值:
1、如何获取请求参数值:
- 利用原有Servlet方法,使用HttpServletRequest
- 利用@RequestParam(“name”)注解(少量参数):例子:@RequestParam("myName")(myName无值时会抛出异常);@RequestParam(value="myName",required=false)(myName无值时不会抛出异常,无值则不取)
- 采用实体类封装(大量参数,SpringMVC内部自动封装,实体类setter方法与请求参数key保持一致):原理:Spring自动从request获取参数值,给实体类匹配的setter方法设置值。
2、后端传值给页面:
- 利用原有Servlet方案,使用request.setAttribute();
- 返回ModelAndView对象
- (推荐使用)使用Model对象,在参数中加Model对象,在代码中使用Model的方法addAttribute讲参数传回页面。作为了解:等价于@ModelAttribute("myName"),放在传参内
@ModelAttribute("msg") //可以用于数据的提前加载
//相当于model.addAttribute("show",show);
//执行时机在@RequestMapping方法之前
public String findMsg() {
System.out.println("~~~执行findMsg方法~~~");
return "您好!";
}
- 向Session存储数据:
1.使用Servlet,使用HttpSession参数;
2.使用@SessionAttributes("myName"),含义是:将Model中存储的Key为myName的信息,由Request范围转换成Session范围。
注意:在使用前要确定Model里面有model.addAttribute("myName", myName);。
用法:在model加入myName之后再在类前面加入标签@SessionAttributes("myName")