springMVC:將controller中數據傳遞到jsp頁面

原文地址:http://blog.csdn.net/sunshine__me/article/details/49494545



1> 將方法的返回值該爲ModelAndView在返回時,將數據存儲在ModelAndView對象中如:

 newModelAndView("/WEBINF/jsp/showData.jsp","message",message)
  • 1
  • 1

其中第一個參數爲url,第二個參數爲要傳遞的數據的key,第三個參數爲數據對象。

在這裏要注意的是 數據是默認被存放在request中的。

示例:

@RequestMapping(value="/mad/showData_1.do")
public ModelAndView showData_1(){
   String message = "這個是要傳遞的數據";
   /*其中第一個參數爲url,第二個參數爲要傳遞的數據的key,第三個參數爲數據對象。在這裏要注意的是:數據是默認被存放在request中的。*/
   return new ModelAndView("/WEB-INF/jsp/showData.jsp","message",message);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

前臺頁面獲取方式: 
request:${requestScope.message}

2> 可以在類的前面添加註解 
@SessionAttributes({“message”,”user”})

這個註解可以設置對應的model中參數也會在session中存儲一份。該註解中的參數爲一個集合,
可以寫多個,如上面的例子,其中message和user都是存儲的數據的key.

示例程序:

@SessionAttributes({"message","user"})   //modelAndView中的對應的數據也會在session中存儲一份
  • 1
  • 1

頁面獲取:

session:${sessionScope.message}<br/>
  • 1
  • 1

3 > 數據modelAndView返回一個集合

該處理方式和上面的處理方式一直,因爲modelAndView接受的數據類型是Object的,集合也是一樣的處理方式

示例:

//使用modelAndView對象將數據傳遞到前臺。
//傳遞多個參數(不同類型的)
   @RequestMapping(value="/mad/showData_2.do")
   public ModelAndView showData_2(){
      System.out.println("showData_2");
      String message = "這個是要傳遞的數據";
      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");
      //將數據存入modelMap
      mad.addObject("message", message);
      mad.addObject(user);//默認爲類名的首字母小寫
      mad.addObject("users", us);
      return mad;
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

前臺頁面獲取方式:

request:${requestScope.message}<br/>
<c:forEach items="${requestScope.users }"var="u">
      ${u.name }-${u.age }-${u.birth }<br/>
   </c:forEach>
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

4、使用modelAndView傳遞多個參數。

可以通過ModelAndView的mad.addObject(“message”,message);方法設置參數。 
該方法中第一個參數爲數據的key,第二個參數爲數據對象。 
也可以使用mad.addObject(user);方法 
該方法中數據的參數爲數據對象,數據的key爲該對象的類的類名 
(其中首字母小寫)。

5、使用ModelMap傳遞多個數據到jsp中。

在方法的參數列表中添加形參 ModelMap map,spring 會自動創建ModelMap對象。

然後調用map的put(key,value)或者addAttribute(key,value)將數據放入map中,spring會自動將數據存入request。

示例:

//使用modelMap對象將數據傳遞到前臺。
   //傳遞多個參數(不同類型的)
   @RequestMapping(value="/mad/showData_3.do")
   public String showData_3(ModelMap map){
      System.out.println("showData_3");
      String message = "這個是要傳遞的數據";
      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()));
      //將數據存入modelMap
      map.put("message", message);
      map.addAttribute("user", user);
      map.put("users", us);
      return"/WEB-INF/jsp/showData.jsp";
   }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

頁面調用:

request:${requestScope.message}<br/>
   session:${sessionScope.message }<br/>
   application:${applicationScope.message}<br/>
   <hr/>
   <h1>ModelMap中的數據</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>

發佈了116 篇原創文章 · 獲贊 18 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章