在SpringMVC中,調用方法前會先建立一個隱含的數據模型,做爲模型數據的存儲容器.也就是說在每次的先後端請求時,會攜帶一個揹包,無論你有沒有用到,這個揹包是存在的,用來存放咱們交互的數據的值html
有個
@ModelAttribute
註解,意思是在請求
方法調用以前
,會優先
執行被這個註解修飾的方法前端
在前端向後端請求時,Spring 就會自動建立好 Model 和 ModelMap 實例,咱們只須要使用便可.
java
Model 是一個接口,public class ExtendedModelMap extends ModelMap implements Model
,經過 .attribue()
添加數據進揹包,存儲的數據域範圍是 requestScope
segmentfault
經過 Controller 來返回目標頁面.後端
@RequestMapping(value = "/index") public String index1(Model model) { model.addAttribute("result", "後臺返回index1"); return "result"; }
經過 .attribue()
添加數據進揹包,做用和 request
的 setAttribute
相似,用來傳遞請求處理的數據,做用域範圍 requestScope
app
經過 Controller 來返回目標頁面.jsp
public String xxxxmethod(String someparam,ModelMap model) { //省略方法處理邏輯若干 //將數據放置到 ModelMap 對象 model 中,第二個參數能夠是任何java類型 model.addAttribute("key",someparam); ...... //返回跳轉地址 return "success"; }
Model 和 ModelMap 的結合體,有多種重載的構造方法,能夠在構造方法中傳入參數指定跳轉到的目標頁面
,也能夠經過 ModelAndView 實例對象的方法指定,最後返回 實例對象
便可spa
@RequestMapping("/index") public ModelAndView testModelAndView(){ //建立一個模型視圖對象 ModelAndView mav = new ModelAndView(); // ...... // //將數據放置到 ModelAndView 對象 view 中,第二個參數能夠是任何 java 類型 mav.addObject("cs", cs); // 放入 jsp / html 路徑 mav.setViewName("lankeren"); //返回 ModelAndView 對象 mav return mav; }