1> 將方法的返回值該為ModelAndView在返回時,將數(shù)據(jù)存儲在ModelAndView對象中如:
1
|
|
其中第一個參數(shù)為url,第二個參數(shù)為要傳遞的數(shù)據(jù)的key,第三個參數(shù)為數(shù)據(jù)對象。
在這里要注意的是 數(shù)據(jù)是默認(rèn)被存放在request中的。
示例:
1
2
3
4
5
6
|
@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); } |
前臺頁面獲取方式:
1
|
request:${requestScope.message} |
2> 可以在類的前面添加注解
1
|
@SessionAttributes ({“message”,”user”}) |
這個注解可以設(shè)置對應(yīng)的model中參數(shù)也會在session中存儲一份。該注解中的參數(shù)為一個集合,可以寫多個,如上面的例子,其中message和user都是存儲的數(shù)據(jù)的key.
示例程序:
@SessionAttributes({"message","user"}) //modelAndView中的對應(yīng)的數(shù)據(jù)也會在session中存儲一份
頁面獲取:
1
|
session:${sessionScope.message}<br/> |
3 > 數(shù)據(jù)modelAndView返回一個集合
該處理方式和上面的處理方式一直,因為modelAndView接受的數(shù)據(jù)類型是Object的,集合也是一樣的處理方式
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//使用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; } |
前臺頁面獲取方式:
1
2
3
4
|
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。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//使用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)用:
1
2
3
4
5
6
7
8
9
10
11
|
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í)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.cnblogs.com/xuange306/p/6398090.html