有这么种需求,例如我需要提交整个表格数据进行数据更新,下面列出两种提交,一种是form直接提交,一直是异步ajax提交:
1.form提交方式:
jsp代码:主意input中name的写法,提交User数据:
<body>
<form action="${contextPath}/user/testdemo" id="uform" method="post">
<table >
<td>用户名</td><td>密码</td><td>年龄</td>
<td><input value="aa" name="users[0].username"/></td> <td><input value="aa" name="users[0].password"/></td> <td><input value="aa" name="users[0].age"/></td>
<td><input value="bb" name="users[1].username"/></td><td><input value="bb" name="users[1].password"/></td> <td><input value="bb" name="users[1].age"/></td>
</table>
<input type="submit" value="提交"/>
</form>
</body>
springmvc后台接受方法:
@RequestMapping(value = "testdemo", method = RequestMethod.POST)
public @ResponseBody
String testdemo(HttpServletRequest request, Map<String, Object> map,UserList userlist) {UserList为接收数据
return "ok";
}
UserList类:
public class UserList {
private List<User> users ;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
User类:省略了set get方法:
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(length = 32)
private int id;
@Column(length = 32)
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Column(length = 32)
private String password;
@Column(length = 32)
private String age;
2.ajax异步提交方式:
jsp中代码:
<body>
<form action="${contextPath}/user/testdemo" id="uform" method="post">
<table >
<td>用户名</td><td>密码</td><td>年龄</td>
<td><input value="aa" name="users[0].username"/></td> <td><input value="aa" name="users[0].password"/></td> <td><input value="aa" name="users[0].age"/></td>
<td><input value="bb" name="users[1].username"/></td> <td><input value="bb" name="users[1].password"/></td> <td><input value="bb" name="users[1].age"/></td>
</table>
</form>
<input type="button" value="提交" id="submitbtn"/>
</body>
js中代码:
<script>
$(function(){
$("#submitbtn").click(function(){
$.ajax({
type : 'post',
data : $("#uform").serialize(),
url : '${contextPath}/user/testdemo',
success : function(data) {
}
});
});
});
</script>
springmvc后台写法同第一种form提交一样不变。