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)文章
sqlserver和java將resultSet中的記錄轉(zhuǎn)換為學(xué)生對象
這篇文章主要介紹了如何利用sqlserver和java將resultSet中的記錄轉(zhuǎn)換為學(xué)生對象,附有超詳細的代碼,需要的朋友可以參考一下,希望對你有所幫助2021-12-12
@Autowired注解注入的xxxMapper報錯問題及解決
這篇文章主要介紹了@Autowired注解注入的xxxMapper報錯問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Java中BufferedReader和BufferedWriter使用方式
這篇文章主要介紹了Java中BufferedReader和BufferedWriter使用方式,F(xiàn)ileWriter?類從?OutputStreamWriter?類繼承而來,BufferedReader?類從字符輸入流中讀取文本并緩沖字符,以便有效地讀取字符,數(shù)組和行2022-06-06
SpringCloud2020版本配置與環(huán)境搭建教程詳解
這篇文章主要介紹了SpringCloud2020版本配置與環(huán)境搭建教程詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
使用RestTemplate調(diào)用RESTful?API的代碼示例
在開發(fā)?Web?應(yīng)用程序時,調(diào)用?RESTful?API?是一個常見的任務(wù),本文將介紹如何使用?RestTemplate?調(diào)用?RESTful?API,并提供示例代碼,感興趣的同學(xué)可以跟著小編一起來看看2023-06-06

