首页 > 解决方案 > 如何使用带有数组的 Spring Form 绑定多个对象?

问题描述

我尝试使用创建一个简单的测试来使用 Spring Form 从我的实体中保存多个对象:

型号:

@Entity
public class Person {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}

在控制器上:

@RequestMapping("/person/insertMultiple")
public String insertMultiple(Model model) {
    Person[] persons = new Person[3];
    model.addAttribute("persons", persons);
    return "/person/insert_multiple";
}

在 jsp 上:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<h1>New Persons</h1>
<form:form action="/person/inserirMultiAction/" method="post" modelAttribute="persons">
    <form:input path="persons[0].name"/>
    <form:input path="persons[0].age"/>
    <form:input path="persons[1].name"/>
    <form:input path="persons[1].age"/>
</form:form>

得到这个错误:

出现意外错误(类型=内部服务器错误,状态=500)。bean 类 [[Lcom.mycompany.model.Person;] 的无效属性“persons[0]”:Bean 属性“persons[0]”不可读或具有无效的 getter 方法:getter 的返回类型是否与设置器的参数类型?

标签: javaspringformsjstl

解决方案


推荐阅读