您好,登錄后才能下訂單哦!
如何進行SpringMVC中ModelAndView的分析,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
當控制器處理完請求時,通常會將包含視圖名稱或視圖對象以及一些模型屬性的ModelAndView對象返回到DispatcherServlet。
因此,經常需要在控制器中構造ModelAndView對象。ModelAndView類提供了幾個重載的構造器和一些方便的方法,
讓你可以根據自己的喜好來構造ModelAndView對象。這些構造器和方法以類似的方式支持視圖名稱和視圖對象。
當你只有一個模型屬性要返回時,可以在構造器中指定該屬性來構造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<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作為返回值,首先在方法頭中進行聲明:
public ModelAndView getNameById(HttpServletRequestrequest,HttpServletResponse response) throws Exception{}
2、然后在方法體中實例化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=測試3,departmentID=,leader=22222,leaderID=]}
解析:mv中有一個view值和一個model值。
view是我們條轉到的頁面的地址,model則是頁面中會用到的數據
給ModelAndView實例設置view的方法有兩個:setViewName(StringviewName) 和 setView(View view)。前者是使用viewName,后者是使用預先構造好的View對象。其中前者比較常用。事實上View是一個接口,而不是一個可以構造的具體類,我們只能通過其他途徑來獲取View的實例。對于viewName,它既可以是jsp的名字,也可以是tiles定義的名字,取決于使用的ViewNameResolver,而對應如何給ModelAndView實例設置model則比較復雜。有三個方法可以使用:
addObject(Object modelObject);
addObject(String modelName, ObjectmodelObject);
addAllObjects(Map modelMap);
ModelAndView對象有兩個作用:
作用一設置轉向地址,如下所示(這也是ModelAndView和ModelMap的主要區別)
ModelAndView view = newModelAndView("path:ok");
作用二用于傳遞控制方法處理結果數據到結果頁面,也就是說我們把需要在結果頁面上需要的數據放到ModelAndView對象中即可,他的作用類似于request對象的setAttribute方法的作用,用來在一個請求過程中傳遞處理的數據。通過以下方法向頁面傳遞參數:
addObject(String key,Object value);
關于如何進行SpringMVC中ModelAndView的分析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。