
java modelandview是什么,讓我們一起了解一下?
modelandview是當(dāng)控制器處理完請求時,會將包含視圖名稱或視圖對象以及一些模型屬性的ModelAndView對象返回到DispatcherServlet。因此,經(jīng)常需要在控制器中構(gòu)造ModelAndView對象。ModelAndView類提供了幾個重載的構(gòu)造器和一些方便的方法,讓你可以根據(jù)自己的喜好來構(gòu)造ModelAndView對象。這些構(gòu)造器和方法以類似的方式支持視圖名稱和視圖對象。當(dāng)你只有一個模型屬性要返回時,可以在構(gòu)造器中指定該屬性來構(gòu)造ModelAndView對象。
ModelAndView的使用方法是怎樣的?
添加模型數(shù)據(jù)用addObject,設(shè)置視圖setViewName。
ModelAndView 對象有兩個作用:
1、設(shè)置轉(zhuǎn)向地址,這也是ModelAndView和ModelMap的主要區(qū)別。設(shè)置方式如下所示:
ModelAndView?view?=?new?ModelAndView("path:student");或者通過setViewName方式:
public?void?setViewName(String?viewName){...}
2、將控制器方法中處理的結(jié)果數(shù)據(jù)傳遞到結(jié)果頁面,也就是把在結(jié)果頁面上需要的數(shù)據(jù)放到ModelAndView對象中即可,其作用類似于request對象的setAttribute方法的作用,用來在一個請求過程中傳遞處理的數(shù)據(jù)。通過以下方法向頁面?zhèn)鬟f參數(shù):
public?ModelAndView?addObject(String?attributeName,?Object?attributeValue){...}
public?ModelAndView?addObject(Object?attributeValue){...}在jsp中:也是可以通過el表達式語言 a t t r i b u t e N a m e 或 者 C 標(biāo) 簽 庫 的 attributeName或者C標(biāo)簽庫的 attributeName或者C標(biāo)簽庫的{name } 來獲取并展示ModelAndView中的數(shù)據(jù)。
實戰(zhàn)操作,示例代碼如下:
package?com.itmyhome;??
??
import?java.util.ArrayList;??
import?java.util.HashMap;??
import?java.util.List;??
import?java.util.Map;??
??
import?org.springframework.stereotype.Controller;??
import?org.springframework.web.bind.annotation.RequestMapping;??
import?org.springframework.web.servlet.ModelAndView;??
??
@Controller??
public?class?Login?{??
??
????@RequestMapping(value="login")??
????public?ModelAndView?login(){??
????????ModelAndView?mav?=?new?ModelAndView();??
????????mav.setViewName("welcome");?//返回的文件名??
??????????
????????mav.addObject("message","hello?kitty");??
??????????
????????//List??
????????List?list?=?new?ArrayList();??
????????list.add("java");??
????????list.add("c++");??
????????list.add("oracle");??
????????mav.addObject("bookList",?list);??
??????????
????????//Map??
????????Map?map?=?new?HashMap();??
????????map.put("zhangsan",?"北京");??
????????map.put("lisi",?"上海");??
????????map.put("wangwu",?"深圳");??
????????mav.addObject("map",map);??
??????????
????????return?mav;??
????}??
}以上就是小編今天的分享了,希望可以幫助到大家。
