form表单页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java./jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java./jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java./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;
}
}
|