SpringMVC form表单提交list对象集合
2016-12-29 15:11
531 查看
form表单页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="ctx" value="<%=request.getContextPath()%>" />
<html>
<head>
<title></title>
</head>
<body>
<form id="form" action="${ctx }/list/aaa" method="post">
<%--<input type="text" name="user[0].userName" value="jobs"/>--%>
<%--<input type="text" name="user[0].password" value="55"/><br/>--%>
<%--<input type="text" name="user[1].userName" value="jim"/>--%>
<%--<input type="text" name="user[1].password" value="21"/><br/>--%>
<%--<%! int m = 0; %>--%>
<c:forEach items="${users}" var="user" varStatus="i">
<%--users[${i.index}]--%>
<input type="text" name="users[${i.index}].id" value="${user.id}"/><br/>
<input type="text" name="users[${i.index}].name" value="${user.name}"/><br/>
<input type="text" name="users[${i.index}].password" value="${user.password}"/><br/>
<c:forEach items="${user.roses}" var="role" varStatus="j">
<input type="hidden" name="roles[${i.index}].index" value="${i.index}"/>
<input type="hidden" name="roles[${i.index}].id" value="${role.id}"/>
<input type="text" name="roles[${i.index}].roleId" value="${role.roleId}"><br/>
<input type="text" name="roles[${i.index}].rolename" value="${role.rolename}"><br/>
<%--<input type="hidden" name="roles[<%=m%>].id" value="${i.index}"/>--%>
<%-- <input type="text" name="roles[<%=m%>].roleId" value="${role.roleId}"><br/>--%>
<%-- <input type="text" name="roles[<%=m%>].rolename" value="${role.rolename}"><br/>--%>
<%--<% m++; %>--%>
</c:forEach>
</c:forEach>
<button onclick="submit()">提交</button>
</form>
</body>
</html>
controller接收数据格式
javabean对象
public class User {
private Integer id;
private String name;
private String password;
private List<Role> roses;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<Role> getRoses() {
return roses;
}
public void setRoses(List<Role> roses) {
this.roses = roses;
}
}
public class Roles {
private Integer[] roleId;
private Integer[] id;
private String[] rolename;
private Integer[] index;
public Integer[] getRoleId() {
return roleId;
}
public void setRoleId(Integer[] roleId) {
this.roleId = roleId;
}
public Integer[] getId() {
return id;
}
public void setId(Integer[] id) {
this.id = id;
}
public String[] getRolename() {
return rolename;
}
public void setRolename(String[] rolename) {
this.rolename = rolename;
}
public Integer[] getIndex() {
return index;
}
public void setIndex(Integer[] index) {
this.index = index;
}
}
form表单提交的list集合转换的对象
public class Person {
private List<User> users;
private List<Roles> roles;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
public List<Roles> getRoles() {
return roles;
}
public void setRoles(List<Roles> roles) {
this.roles = roles;
}
}
contoller
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2016-12-22.
*/
@Controller
@RequestMapping("/list")
public class FormListController {
@RequestMapping("/getjsp")
public ModelAndView jsp(ModelMap view){
List<User> users = new ArrayList<User>();
User user1 = new User();
user1.setId(1);
user1.setName("aaa");
user1.setPassword("111");
List<Role> roles = new ArrayList<Role>();
Role role1 = new Role();
role1.setId(1);
role1.setRoleId(1);
role1.setRolename("qqq");
Role role2 = new Role();
role2.setId(1);
role2.setRoleId(2);
role2.setRolename("www");
roles.add(role1);
roles.add(role2);
user1.setRoses(roles);
User user2 = new User();
user2.setId(2);
user2.setName("bbb");
user2.setPassword("222");
List<Role> roles1 = new ArrayList<Role>();
Role role3 = new Role();
role3.setId(2);
role3.setRoleId(3);
role3.setRolename("eee");
Role role4 = new Role();
role4.setId(2);
role4.setRoleId(4);
role4.setRolename("rrr");
roles1.add(role3);
roles1.add(role4);
user2.setRoses(roles1);
users.add(user1);
users.add(user2);
view.put("users", users);
try {
System.out.println(new ObjectMapper().writeValueAsString(users));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return new ModelAndView("test/list");
}
@RequestMapping(value = "/aaa")
public String aaa(Person users){
System.out.println("11111");
try {
List<User> userList = users.getUsers();
for(int i=0; i<userList.size(); i++){
Roles roles = users.getRoles().get(i);
List<Role> roleList = new ArrayList<Role>();
for(int j=0; j<roles.getId().length; j++){
Role role = new Role();
role.setId(roles.getId()[j]);
role.setRoleId(roles.getRoleId()[j]);
role.setRolename(roles.getRolename()[j]);
roleList.add(role);
}
userList.get(i).setRoses(roleList);
}
System.out.println(new ObjectMapper().writeValueAsString(users.getUsers()));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="ctx" value="<%=request.getContextPath()%>" />
<html>
<head>
<title></title>
</head>
<body>
<form id="form" action="${ctx }/list/aaa" method="post">
<%--<input type="text" name="user[0].userName" value="jobs"/>--%>
<%--<input type="text" name="user[0].password" value="55"/><br/>--%>
<%--<input type="text" name="user[1].userName" value="jim"/>--%>
<%--<input type="text" name="user[1].password" value="21"/><br/>--%>
<%--<%! int m = 0; %>--%>
<c:forEach items="${users}" var="user" varStatus="i">
<%--users[${i.index}]--%>
<input type="text" name="users[${i.index}].id" value="${user.id}"/><br/>
<input type="text" name="users[${i.index}].name" value="${user.name}"/><br/>
<input type="text" name="users[${i.index}].password" value="${user.password}"/><br/>
<c:forEach items="${user.roses}" var="role" varStatus="j">
<input type="hidden" name="roles[${i.index}].index" value="${i.index}"/>
<input type="hidden" name="roles[${i.index}].id" value="${role.id}"/>
<input type="text" name="roles[${i.index}].roleId" value="${role.roleId}"><br/>
<input type="text" name="roles[${i.index}].rolename" value="${role.rolename}"><br/>
<%--<input type="hidden" name="roles[<%=m%>].id" value="${i.index}"/>--%>
<%-- <input type="text" name="roles[<%=m%>].roleId" value="${role.roleId}"><br/>--%>
<%-- <input type="text" name="roles[<%=m%>].rolename" value="${role.rolename}"><br/>--%>
<%--<% m++; %>--%>
</c:forEach>
</c:forEach>
<button onclick="submit()">提交</button>
</form>
</body>
</html>
controller接收数据格式
javabean对象
public class User {
private Integer id;
private String name;
private String password;
private List<Role> roses;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<Role> getRoses() {
return roses;
}
public void setRoses(List<Role> roses) {
this.roses = roses;
}
}
public class Roles {
private Integer[] roleId;
private Integer[] id;
private String[] rolename;
private Integer[] index;
public Integer[] getRoleId() {
return roleId;
}
public void setRoleId(Integer[] roleId) {
this.roleId = roleId;
}
public Integer[] getId() {
return id;
}
public void setId(Integer[] id) {
this.id = id;
}
public String[] getRolename() {
return rolename;
}
public void setRolename(String[] rolename) {
this.rolename = rolename;
}
public Integer[] getIndex() {
return index;
}
public void setIndex(Integer[] index) {
this.index = index;
}
}
form表单提交的list集合转换的对象
public class Person {
private List<User> users;
private List<Roles> roles;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
public List<Roles> getRoles() {
return roles;
}
public void setRoles(List<Roles> roles) {
this.roles = roles;
}
}
contoller
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2016-12-22.
*/
@Controller
@RequestMapping("/list")
public class FormListController {
@RequestMapping("/getjsp")
public ModelAndView jsp(ModelMap view){
List<User> users = new ArrayList<User>();
User user1 = new User();
user1.setId(1);
user1.setName("aaa");
user1.setPassword("111");
List<Role> roles = new ArrayList<Role>();
Role role1 = new Role();
role1.setId(1);
role1.setRoleId(1);
role1.setRolename("qqq");
Role role2 = new Role();
role2.setId(1);
role2.setRoleId(2);
role2.setRolename("www");
roles.add(role1);
roles.add(role2);
user1.setRoses(roles);
User user2 = new User();
user2.setId(2);
user2.setName("bbb");
user2.setPassword("222");
List<Role> roles1 = new ArrayList<Role>();
Role role3 = new Role();
role3.setId(2);
role3.setRoleId(3);
role3.setRolename("eee");
Role role4 = new Role();
role4.setId(2);
role4.setRoleId(4);
role4.setRolename("rrr");
roles1.add(role3);
roles1.add(role4);
user2.setRoses(roles1);
users.add(user1);
users.add(user2);
view.put("users", users);
try {
System.out.println(new ObjectMapper().writeValueAsString(users));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return new ModelAndView("test/list");
}
@RequestMapping(value = "/aaa")
public String aaa(Person users){
System.out.println("11111");
try {
List<User> userList = users.getUsers();
for(int i=0; i<userList.size(); i++){
Roles roles = users.getRoles().get(i);
List<Role> roleList = new ArrayList<Role>();
for(int j=0; j<roles.getId().length; j++){
Role role = new Role();
role.setId(roles.getId()[j]);
role.setRoleId(roles.getRoleId()[j]);
role.setRolename(roles.getRolename()[j]);
roleList.add(role);
}
userList.get(i).setRoses(roleList);
}
System.out.println(new ObjectMapper().writeValueAsString(users.getUsers()));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
}
相关文章推荐
- 4种方法让SpringMVC接收多个对象 List<user> 表单提交,以BeanListModel接收
- SpringMVC将表单对象序列化成Json字符串提交,以List接收
- jsp页面的ajax和form表单提交后接收数据的区别(SpringMVC控制器返回Map对象)
- SpringMVC将表单对象序列化成Json字符串提交,以List接收
- form表单提交 list对象给Java 后台结合
- 在Struts2使用集合对象保存表单提交参数
- SpringMVC上传下载,页面不刷新提交带附件的form表单
- php+html5使用FormData对象提交表单及上传图片的方法
- springMVC中复杂嵌套对象、List等集合类型数据绑定
- 使用Jquery动态加入对象的集合属性,提交集合属性到表单
- 在Struts2使用集合对象保存表单提交参数
- php+html5使用FormData对象提交表单及上传图片的方法
- 使用FormData对象提交表单及上传图片
- ASP.NET中实现把form表单元素转为实体对象或集合
- 将form表单中的元素转换成对象,适用表单提交
- PHP结合HTML5使用FormData对象提交表单及上传图片
- springMVC提交表单绑定到对象
- SpringMVC上传下载,页面不刷新提交带附件的form表单
- springmvc如何将form表单中的对象类型绑定
- 将form表单元素转为实体对象 或集合 -ASP.NET C#