Я разрабатываю приложение, которое позволяет добавлять списки фильмов.У меня есть форма, когда я хочу разместить информацию о фильмах в ArrayList.Я хочу добавить данные фильма в форму и затем отправить, а затем другой фильм ...
Контроллер:
@RequestMapping(value = "/formulario", method = RequestMethod.GET)
public String addForm(Model m) {
m.addAttribute("pelis", new ArrayList<Peliculas>());
return "addform";
}
@RequestMapping(value = "/addpeli", method = RequestMethod.POST)
public String addPedido(@ModelAttribute("pelis") List<Pelicula> pelis)
throws InstantiationException {
peliculaService.addLibreria(pelis);
return "added";
}
Форма:
<form th:action="@{/addpeli}" th:object="${pelis}" method="post">
<fieldset>
<legend>Nueva película</legend>
<table>
<tr>
<td><label>Título: </label></td>
<td><input type="text" th:field="*{titulo}" /></td>
</tr>
<tr>
<td><label>Director: </label></td>
<td><input type="text" th:field="*{director}" /></td>
</tr>
<tr>
<td><label>Sinopsis: </label></td>
<td><input type="text" th:field="*{sinopsis}" /></td>
</tr>
<td>
<input type="submit" value="Aceptar">
</td>
</tr>
</table>
</fieldset>
</form>
Я получаю следующую ошибку:
org.springframework.beans.NotReadablePropertyException: Invalid property 'titulo'
of bean class [java.util.ArrayList]: Bean property 'titulo' is not readable or has
an invalid getter method: Does the return type of the getter match the parameter type
of the setter?
Я понимаю, что не могу поместить значение title непосредственно в форму, но я не знаю, как это сделать
РЕДАКТИРОВАТЬ :
Pelicula имеет составной первичный ключ.
Это мой класс Pelicula:
@Entity
public class Pelicula {
@EmbeddedId
private PkPelicula idPeli;
private String titulo;
private String director;
private String sinopsis;
public Pelicula(String titulo, String director, String sinopsis) {
this.titulo = titulo;
this.director = director;
this.sinopsis = sinopsis;
}
public Pelicula() {
}
//getters and setters
Класс PkPelicula:
@Embeddable
public class PkPelicula implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "id_libreria")
private Integer idLibreria;
@Column(name = "id_pelicula")
private Integer idPelicula;
public PkPelicula() {
}
public PkPelicula(Integer idLibreria, Integer idPelicula) {
this.idPedido = idLibreria;
this.idPelicula = idPelicula;
}