springmvc學習(三)

我們知道,,很多時候我們在業務方法可能會有返回數據,常常是一些對象,那麼我們怎麼把模型數據輸出到我們需要它顯示的頁面上呢?通常 我們都把模型數據放在域對象裏,一般都是在request域裏面。那麼在這裏springmvc提供了幾種途徑來輸出模型數據:

1.ModelAndView:簡單理解來說,它只作爲返回值,包括視圖信息+模型數據。springmvc會把modelandview的model中的數據放入到request域對象中。


2.Map及Model:作爲參數或返回值。


3.@sessionAttributes:我們把所要返回的信息暫存到HttpSession中


4.@ModelAttributes:


那麼我們首先來看看ModelAndView:


modelAndView有



在index.jsp中寫一個超鏈接

<a href="testModelAndView">TestModelAndView</a>


在控制器中寫這樣的一個方法:

@RequestMapping("/testModelAndView")
public ModelAndView testModelAndVIew(){
ModelAndView mav=new ModelAndView("success");
mav.addObject("name", "name:hxl");
System.out.println(mav);
return mav;

}

那我們現在來看看結果:





這裏我們選擇的ModelAndView的其中一種method,其實它還有很多方法,可以查閱資料,這裏我只展示常用的三種:


除此之外,我們還需要注意的一點是ModelAndView有七個構造方法,在構建ModelAndView對象的時候,我們可以根據返回值的類型來做合適的選擇,下面分析一下


1.無參構造參數ModelAndView()當你只有一個模型屬性要返回時,可採用這種構造器,然後在相應的視圖中可以使用el表達式讀出模型數據。


 public ModelAndView login(){

ModelAndView mav=new ModelAndView();

mav.setViewName("success");//返回的文件名,即返回jsp的名字

mav.addObject("time",new Date);

 }


2.ModelAndView(String viewName):不用modelandview的setViewName方法而是直接在形參中

3.ModelAndView(String viewName, Map model) 


4.ModelAndView(String viewName,String modelName,object modelObject)

這一種構造方法直接把返回的文件名寫在方法的形參中,比前倆種都更加簡潔

 public ModelAndView login(){

ModelAndView mav=new ModelAndView("success","time",new Date());

        return mav;

 }



5.ModelAndView(Object view):這種一般都是沒有模型數據暴露時,方便的構造函數


6.ModelAndView(Object view, Map model) 給出一個view對戲和一個模型,創建一個新的modelandview


7.ModelAndView(Object view, String modelName, Object modelObject) 方便的構造函數來取一個模型對象



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章