SpringMVC的参数传递方式有三种:
1、 通过设置HttpServletRequest request 来获取数据
2、直接设置参数add(@RequestParam(value="number")String userNumber,Integer passWord)
3、通过对象:表单的name属性的值必须和类的属性名称一致
控制器代码如下:
package com.smile.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.smile.po.UserInfo;
/**
* user/list.do
* user/add.do
* @author yingjie
*
*/
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value="/add1.do")
public String add(HttpServletRequest request){
String userNumber = request.getParameter("userNumber");
String passWord = request.getParameter("passWord");
System.out.println("userNumber:"+userNumber+" passWord:"+passWord);
return "user_add1";
}
@RequestMapping(value="/add2.do")
public String add(@RequestParam(value="number")String userNumber,Integer passWord){
//自动类型转换为Integer
System.out.println("userNumber:"+userNumber+" passWord:"+passWord);
return "user_add2";
}
@RequestMapping(value="/add3.do")
public String add3(UserInfo user){
System.out.println(user);
return "user_add3";
}
@RequestMapping
public String add4(Integer userId,Date userTime){
System.out.println(userId);
System.out.println(userTime);
return "user_add4";
}
/**
* 时间属性编辑器
*/
@InitBinder
public void initBinder(ServletRequestDataBinder binder){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
CustomDateEditor cust = new CustomDateEditor(sdf, true);
binder.registerCustomEditor(Date.class,cust);
}
}
user_add1.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>用户信息添加</h1>
<form action="user/add1.do" method="post">
账号:<input type="text" name="userNumber" /><br/>
密码:<input type="text" name="passWord" /><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
user_add2.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>用户信息添加2</h1>
<form action="user/add2.do" method="post">
账号:<input type="text" name="number" /><br/>
密码:<input type="text" name="passWord" /><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
user_add3.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>用户信息添加3</h1>
<form action="user/add3.do" method="post">
编号:<input type="text" name="userId" /><br/>
姓名:<input type="text" name="userName" /><br/>
性别:<input type="text" name="userSex" /><br/>
兴趣爱好:
<input type="checkbox" name="userXq" value="LOL"/>LOL
<input type="checkbox" name="userXq" value="英雄联盟"/>英雄联盟
<input type="checkbox" name="userXq" value="DOTA"/>DOTA<br/>
时间:<input type="text" name="userTime" /><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
user_add4.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>用户信息添加4</h1>
<form action="user/add4.do" method="post">
编号:<input type="text" name="userId" /><br/>
时间:<input type="text" name="userTime" /><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
需要注意的是在输入时间时需要在控制器中增加时间属性编辑器。
userInfo:
package com.smile.po;
import java.util.Arrays;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
public class UserInfo {
private Integer userId;
private String userName;
private String userSex;
private String[] userXq;
private Date userTime;
public String[] getUserXq() {
return userXq;
}
public void setUserXq(String[] userXq) {
this.userXq = userXq;
}
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 getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
@Override
public String toString() {
return "UserInfo [userId=" + userId + ", userName=" + userName
+ ", userSex=" + userSex + ", userXq="
+ Arrays.toString(userXq) + ", userTime=" + userTime + "]";
}
public Date getUserTime() {
return userTime;
}
public void setUserTime(Date userTime) {
this.userTime = userTime;
}
}