您好,登錄后才能下訂單哦!
如何進(jìn)行SpringMVC中ModelAndView的分析,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
當(dāng)控制器處理完請(qǐng)求時(shí),通常會(huì)將包含視圖名稱或視圖對(duì)象以及一些模型屬性的ModelAndView對(duì)象返回到DispatcherServlet。
因此,經(jīng)常需要在控制器中構(gòu)造ModelAndView對(duì)象。ModelAndView類提供了幾個(gè)重載的構(gòu)造器和一些方便的方法,
讓你可以根據(jù)自己的喜好來構(gòu)造ModelAndView對(duì)象。這些構(gòu)造器和方法以類似的方式支持視圖名稱和視圖對(duì)象。
當(dāng)你只有一個(gè)模型屬性要返回時(shí),可以在構(gòu)造器中指定該屬性來構(gòu)造ModelAndView對(duì)象
@Controller
public class Login {
@RequestMapping(value="login"
public ModelAndView login(){
ModelAndView mav = new ModelAndView();
mav.setViewName("welcome"); //返回的文件名
mav.addObject("message","hello kitty");
//List
List<String> list = new ArrayList<String>();
list.add("java");
list.add("c++");
list.add("oracle");
mav.addObject("bookList", list);
//Map
Map<String,String> map = new HashMap<String,String>();
map.put("zhangsan", "北京");
map.put("lisi", "上海");
map.put("wangwu", "深圳");
mav.addObject("map",map);
return mav;
}
}
1、使用ModelAndView作為返回值,首先在方法頭中進(jìn)行聲明:
public ModelAndView getNameById(HttpServletRequestrequest,HttpServletResponse response) throws Exception{}
2、然后在方法體中實(shí)例化ModelAndView
ModelAndViewmv=this.getAutoView().addObject("object",object);
3、最后在方法中的末尾加上returnmv;
那么mv中的值是什么呢?
ModelAndView: reference to view with name'/officeoa/test/bjqGetNameById.jsp'; model is{bjq=com.hotent.officeoa.model.test.Bjq@1d001c5c[id=10000007960011,name=課本,password=12ab,department=測(cè)試3,departmentID=,leader=22222,leaderID=]}
解析:mv中有一個(gè)view值和一個(gè)model值。
view是我們條轉(zhuǎn)到的頁面的地址,model則是頁面中會(huì)用到的數(shù)據(jù)
給ModelAndView實(shí)例設(shè)置view的方法有兩個(gè):setViewName(StringviewName) 和 setView(View view)。前者是使用viewName,后者是使用預(yù)先構(gòu)造好的View對(duì)象。其中前者比較常用。事實(shí)上View是一個(gè)接口,而不是一個(gè)可以構(gòu)造的具體類,我們只能通過其他途徑來獲取View的實(shí)例。對(duì)于viewName,它既可以是jsp的名字,也可以是tiles定義的名字,取決于使用的ViewNameResolver,而對(duì)應(yīng)如何給ModelAndView實(shí)例設(shè)置model則比較復(fù)雜。有三個(gè)方法可以使用:
addObject(Object modelObject);
addObject(String modelName, ObjectmodelObject);
addAllObjects(Map modelMap);
ModelAndView對(duì)象有兩個(gè)作用:
作用一設(shè)置轉(zhuǎn)向地址,如下所示(這也是ModelAndView和ModelMap的主要區(qū)別)
ModelAndView view = newModelAndView("path:ok");
作用二用于傳遞控制方法處理結(jié)果數(shù)據(jù)到結(jié)果頁面,也就是說我們把需要在結(jié)果頁面上需要的數(shù)據(jù)放到ModelAndView對(duì)象中即可,他的作用類似于request對(duì)象的setAttribute方法的作用,用來在一個(gè)請(qǐng)求過程中傳遞處理的數(shù)據(jù)。通過以下方法向頁面?zhèn)鬟f參數(shù):
addObject(String key,Object value);
關(guān)于如何進(jìn)行SpringMVC中ModelAndView的分析問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。