視頻教程地址: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);