SpringMVC參數傳遞方式list,map

 本文是基於SpringMVC註解的方式來實現頁面與後臺之間參數的傳遞,本文主要側重於從後臺傳遞到前臺view。
內容:
1、後臺傳遞單個對象User到前臺;
2、後臺傳遞集合對象到前臺(分Map和List兩種情形)
下面的內容基於SpringMVC工程配置已經準備好,該工程是用maven搭建的。
一:傳遞單個對象(以用戶對象User爲例)
User類:
public class User {
     private Integer userId;
     //用戶名
     private String userName;
     //密碼
     private String password;
     public Integer getUserId() {
            return userId;
     }
     public void setUserId(Integer userId) {
            this. userId = userId;
     }
     public String getUserName() {
            return userName;
     }
     public void setUserName(String userName) {
            this. userName = userName;
     }
     public String getPassword() {
            return password;
     }
     public void setPassword(String password) {
            this. password = password;
     }
}

Controller類:
@Controller
@RequestMapping(value="/test" )
public class DemoController {
     @RequestMapping(value= "/param")
     public String   testParam(Model model ){
           User u1 = new User();
            u1.setUserId(1);
            u1.setPassword( "123456");
            u1.setUserName( "張三");
            model.addAttribute( "user", u1);
            return "param" ;
     }
}


param.jsp頁面:
<%@ page language ="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
     <body >
    用戶名:${user.userName}
    密碼:${user.password}
     </body >
</html>
二:傳遞Map集合對象(以Map<String,User>爲例)
User類同上;
Controller類:
@Controller
@RequestMapping(value="/test" )
public class DemoController {
     @RequestMapping(value= "/param")
     public String  testParam(Model model){
           
            return mapInfo();
     }
     /*
      * ModelAndView:它代表了Spring Web MVC中呈現畫面時所使用的Model與View,
      * 由於Java一次只能返回一個物件,所以ModelAndView的作用封裝這兩個物件,以方便您一次返回Model與View這兩個物件。
      * @return
      */
     private ModelAndView mapInfo(){
           Map<String,Object> map = new HashMap<String, Object>(); 
           User u1 = new User();
            u1.setUserId(1);
            u1.setPassword( "123456");
            u1.setUserName( "張三");
           
           User u2 = new User();
            u2.setUserId(1);
            u2.setPassword( "123456");
            u2.setUserName( "張四");
           
            map.put( "user1", u1);
            map.put( "user2", u2);
            /*
            * 1、" param":試圖名,即跳轉到param.jsp頁面
            * 2、"map":傳遞的對象爲map類型
            * 3、map:被傳遞的對象
            */
            return new ModelAndView( "param", "map", map);
     }
}
param.jsp頁面:
<%@ page language ="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
     <body >
           <c:forEach items ="${requestScope.map}" var= "m"> 
             ${m.key} : ${m.value.userName} <br /> 
          </c:forEach >
     </body >
</html>
三:傳遞List集合對象(以List<User>爲例)
User類同上;
Controller類:
@Controller
@RequestMapping(value="/test" )
public class DemoController {
     @RequestMapping(value= "/param")
     public String  testParam(Model model){
            model.addAttribute( listInfo());
            return "param";
     }
     public @ModelAttribute List<User> listInfo(){
           List<User> list = new ArrayList<User>();
           User u1 = new User();
            u1.setUserId(1);
            u1.setPassword( "123456");
            u1.setUserName( "張三");
           
           User u2 = new User();
            u2.setUserId(1);
            u2.setPassword( "123456");
            u2.setUserName( "張四");
           
           User u3 = new User();
            u3.setUserId(1);
            u3.setPassword( "123456");
            u3.setUserName( "張五");
           
            list.add( u3);
            list.add( u2);
            list.add( u1);
            return list;
     }
}
param.jsp頁面:
<%@ page language ="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
     <body >
         <c:forEach items ="${requestScope.userList}" var= "m"> 
             用戶名:${m.userName};密碼:${m.password} <br /> 
         </c:forEach >
      </body >
</html>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章