视频教程地址: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);