本文是基於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>