视频教程地址:http://edu.51cto.com/sd/2cfc2
数据回显其实就是指后台像前台传参的一个过程,这里介绍几种常见的数据回显:
1.springMVC会自动回显的实体类
2.常见的携带参数的手段
ModelAndView
Model/ModelMap
Map
这里也可以使用servlet中的session,request等等,只要在方法里以形参的形式声明,就可以使用
介绍两个数据回显的注解
@SessionAttributes
@ModelAttributes
1.springMVC会自动回显的实体类
实体类的数据会在页面进入控制器后,springmvc会自动将改实体类的数据放到request作用域。但是有个前提条件
就是:在你形参上声明的实体类参数,必须是该实体类首字母小写:比如Student student,User user如图
2.ModelAndView:可以携带数据和视图
ModelAndView mv = new ModelAndView(); Map<String, Student>map=new HashMap<String, Student>(); mv.addAllObjects(map); mv.setViewName("hello"); //2.new ModelAndView(viewName,数据); ModelAndView mv1 = new ModelAndView("hello",map);
3.Map/Model/ModelMap这几种的使用方法类似(都是直接在方法上以形参的形式声明,直接使用)
@RequestMapping("model_test") public Integer model_test(Model model,ModelMap modelMap,Map<Integer, String> map){ model.addAttribute("", ""); modelMap.addAttribute("", ""); map.put(1, ""); return 1; }
这几个携带数据的时候都是放在request作用域
4.使用session,request携带数据的用法和servlet一样,只要你在方法上以形参的形式声明,就可以直接使用
public Integer model_test(HttpSession session,HttpServletRequest request){ session.setAttribute("", ""); request.setAttribute("", ""); return 1; }
5.@SessionAttributes(会自动把model中的数据放到session作用域。他是写在类上面的,并且属性名和model中的一致)
这个注解会把你放在request作用域的对象放到session作用域中
声明在类上,并且名字和model中的一致
6.@ModelAttributes(可以把页面接收的值放入到request作用域)
可以直接在方法中,如下使用:
相当于:request.setAttribute(“stu”, sb);