springMVC如何將controller中數(shù)據(jù)傳遞到j(luò)sp頁面
1> 將方法的返回值該為ModelAndView在返回時(shí),將數(shù)據(jù)存儲(chǔ)在ModelAndView對(duì)象中如:
newModelAndView("/WEBINF/jsp/showData.jsp","message",message)
其中第一個(gè)參數(shù)為url,第二個(gè)參數(shù)為要傳遞的數(shù)據(jù)的key,第三個(gè)參數(shù)為數(shù)據(jù)對(duì)象。
在這里要注意的是 數(shù)據(jù)是默認(rèn)被存放在request中的。
示例:
@RequestMapping(value="/mad/showData_1.do") public ModelAndView showData_1(){ String message = "這個(gè)是要傳遞的數(shù)據(jù)"; /*其中第一個(gè)參數(shù)為url,第二個(gè)參數(shù)為要傳遞的數(shù)據(jù)的key,第三個(gè)參數(shù)為數(shù)據(jù)對(duì)象。在這里要注意的是:數(shù)據(jù)是默認(rèn)被存放在request中的。*/ return new ModelAndView("/WEB-INF/jsp/showData.jsp","message",message); }
前臺(tái)頁面獲取方式:
request:${requestScope.message}
2> 可以在類的前面添加注解
@SessionAttributes({“message”,”user”})
這個(gè)注解可以設(shè)置對(duì)應(yīng)的model中參數(shù)也會(huì)在session中存儲(chǔ)一份。該注解中的參數(shù)為一個(gè)集合,可以寫多個(gè),如上面的例子,其中message和user都是存儲(chǔ)的數(shù)據(jù)的key.
示例程序:
@SessionAttributes({"message","user"}) //modelAndView中的對(duì)應(yīng)的數(shù)據(jù)也會(huì)在session中存儲(chǔ)一份
頁面獲?。?br />
session:${sessionScope.message}<br/>
3 > 數(shù)據(jù)modelAndView返回一個(gè)集合
該處理方式和上面的處理方式一直,因?yàn)閙odelAndView接受的數(shù)據(jù)類型是Object的,集合也是一樣的處理方式
示例:
//使用modelAndView對(duì)象將數(shù)據(jù)傳遞到前臺(tái)。 //傳遞多個(gè)參數(shù)(不同類型的) @RequestMapping(value="/mad/showData_2.do") public ModelAndView showData_2(){ System.out.println("showData_2"); String message = "這個(gè)是要傳遞的數(shù)據(jù)"; User user = new User("張三", 12, new Date()); List<User> us= new ArrayList<User>(); us.add(new User("張三", 12, new Date())); us.add(new User("張四", 13, new Date())); us.add(new User("張五", 14, new Date())); ModelAndView mad = new ModelAndView("/WEB-INF/jsp/showData.jsp"); //將數(shù)據(jù)存入modelMap mad.addObject("message", message); mad.addObject(user);//默認(rèn)為類名的首字母小寫 mad.addObject("users", us); return mad; }
前臺(tái)頁面獲取方式:
request:${requestScope.message}<br/> <c:forEach items="${requestScope.users }"var="u"> ${u.name }-${u.age }-${u.birth }<br/> </c:forEach>
4、使用modelAndView傳遞多個(gè)參數(shù)。
可以通過ModelAndView的mad.addObject(“message”,message);方法設(shè)置參數(shù)。
該方法中第一個(gè)參數(shù)為數(shù)據(jù)的key,第二個(gè)參數(shù)為數(shù)據(jù)對(duì)象。
也可以使用mad.addObject(user);方法
該方法中數(shù)據(jù)的參數(shù)為數(shù)據(jù)對(duì)象,數(shù)據(jù)的key為該對(duì)象的類的類名 (其中首字母小寫)。
5、使用ModelMap傳遞多個(gè)數(shù)據(jù)到j(luò)sp中。
在方法的參數(shù)列表中添加形參 ModelMap map,spring 會(huì)自動(dòng)創(chuàng)建ModelMap對(duì)象。
然后調(diào)用map的put(key,value)或者addAttribute(key,value)將數(shù)據(jù)放入map中,spring會(huì)自動(dòng)將數(shù)據(jù)存入request。
示例:
//使用modelMap對(duì)象將數(shù)據(jù)傳遞到前臺(tái)。 //傳遞多個(gè)參數(shù)(不同類型的) @RequestMapping(value="/mad/showData_3.do") public String showData_3(ModelMap map){ System.out.println("showData_3"); String message = "這個(gè)是要傳遞的數(shù)據(jù)"; User user = new User("張三", 12, new Date()); List<User> us= new ArrayList<User>(); us.add(new User("張三", 12, new Date())); us.add(new User("張四", 13, new Date())); us.add(new User("張五", 14, new Date())); //將數(shù)據(jù)存入modelMap map.put("message", message); map.addAttribute("user", user); map.put("users", us); return"/WEB-INF/jsp/showData.jsp"; }
頁面調(diào)用:
request:${requestScope.message}<br/> session:${sessionScope.message }<br/> application:${applicationScope.message}<br/> <hr/> <h1>ModelMap中的數(shù)據(jù)</h1> ${requestScope.message}<br/> ${requestScope.user.name}<br/> <p>列表</p> <c:forEach items="${requestScope.users}" var="u"> ${u.name }-${u.age }-${u.birth }<br/> </c:forEach>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)在線編輯預(yù)覽office文檔詳解
PageOffice是一款在線的office編輯軟件,幫助Web應(yīng)用系統(tǒng)或Web網(wǎng)站實(shí)現(xiàn)用戶在線編輯Word、Excel、PowerPoint文檔,下面我們就來看看如何使用Java實(shí)現(xiàn)在線預(yù)覽office吧2024-01-01Spring實(shí)戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作,結(jié)合實(shí)例形式分析了Spring協(xié)調(diào)作用域不同步的Bean相關(guān)配置及使用技巧,需要的朋友可以參考下2019-11-11mybatis-generator生成多次重復(fù)代碼問題以及解決
在使用MySQL數(shù)據(jù)庫時(shí),如果多個(gè)數(shù)據(jù)庫中存在相同表名,即使在URL中配置了數(shù)據(jù)庫名,也可能導(dǎo)致數(shù)據(jù)互相影響,解決這一問題的方法是在mapper-generator-config.xml文件中添加catalog屬性,明確指定逆向工程代碼所涉及表的數(shù)據(jù)庫名2024-10-10IDEA中配置多個(gè)版本的JDK的實(shí)現(xiàn)示例
IDEA可以配置多個(gè)JDK,根據(jù)需要使用不同版本的,本文就來介紹一下IDEA中配置多個(gè)版本的JDK的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解
本文主要介紹了Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03