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