SpringMVC form表单提交list对象集合

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}"/>
      &nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="roles[${i.index}].roleId" value="${role.roleId}"><br/>
      &nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="roles[${i.index}].rolename" value="${role.rolename}"><br/>
      <%--<input type="hidden" name="roles[<%=m%>].id" value="${i.index}"/>--%>
      <%--&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="roles[<%=m%>].roleId" value="${role.roleId}"><br/>--%>
      <%--&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="roles[<%=m%>].rolename" value="${role.rolename}"><br/>--%>
      <%--<% m++; %>--%>
    </c:forEach>
  </c:forEach>
  <button οnclick="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;
    }
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个使用Spring MVC和List集合实现商品列表的批量修改的示例代码: Controller类: ``` @Controller public class ProductController { @Autowired private ProductService productService; @RequestMapping(value = "/product/list", method = RequestMethod.GET) public ModelAndView productList() { ModelAndView mav = new ModelAndView("productList"); List<Product> productList = productService.getProductList(); mav.addObject("productList", productList); return mav; } @RequestMapping(value = "/product/update", method = RequestMethod.POST) public ModelAndView updateProductList(@ModelAttribute("productList") List<Product> productList) { ModelAndView mav = new ModelAndView("productList"); productService.updateProductList(productList); mav.addObject("productList", productList); return mav; } } ``` Product类: ``` public class Product { private int id; private String name; private double price; // getter and setter methods } ``` Service类: ``` @Service public class ProductService { private List<Product> productList = new ArrayList<Product>(); public List<Product> getProductList() { return productList; } public void updateProductList(List<Product> productList) { this.productList = productList; } } ``` View页面: ``` <form:form method="POST" action="${pageContext.request.contextPath}/product/update"> <table> <thead> <tr> <th>ID</th> <th>Name</th> <th>Price</th> </tr> </thead> <tbody> <form:form method="POST" action="${pageContext.request.contextPath}/product/update" modelAttribute="productList"> <c:forEach items="${productList}" var="product" varStatus="status"> <tr> <td><form:input path="productList[${status.index}].id" value="${product.id}"/></td> <td><form:input path="productList[${status.index}].name" value="${product.name}"/></td> <td><form:input path="productList[${status.index}].price" value="${product.price}"/></td> </tr> </c:forEach> </form:form> </tbody> </table> <input type="submit" value="Update"> </form:form> ``` 在这个示例中,我们使用了Spring MVC的ModelAndView来将List集合传递到View页面中。在View页面中,我们使用了JSTL的<c:forEach>标签来遍历产品列表,并使用Spring表单标签库中的<form:input>标签来生成输入框。当用户点击“Update”按钮时,我们使用Spring MVC的@ModelAttribute注解来捕获更新后的产品列表,并将其传递给Service类进行处理。 此示例中只包含了基本的增删功能,如需更多功能可以根据具体需求进行扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值