Загрузка массива через html форму
Есть объект, в котором содержится массив для загрузки фотографий и два поля String, этот объект передаётся в html form. Поля строк заполняются нормально, но при загрузке фото происходит ошибка несоответствия типов. Но как тогда правильно указать что поле является именно массивом в html документе с использованием thymeleaf?
Код addRecord.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Add record</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form action="#" th:action="@{/inp}" th:object="${record}" method="post">
<input type="text" th:field="*{title}" maxlength="50"/>
<textarea th:field="*{text}" rows="6" cols="200" maxlength="1024"/>
<input type="file" th:field="*{photos}" value="Прикрепить фото" multiple accept="image/*" />
<input type="submit" value="Добавить"/>
</form>
</body>
</html>
Код контроллера
@RequestMapping(value="/inp", method = RequestMethod.GET)
public String recordForm(Model model){
model.addAttribute("record", new RecordForm());
return "addRecord";
}
@RequestMapping(value="/inp", method = RequestMethod.POST)
public String recordSubmit(@ModelAttribute RecordForm form, Model model){
try {
this.recordList.add(form);
model.addAttribute("title", form.getTitle());
model.addAttribute("text", form.getText());
} catch (IOException e) {
e.printStackTrace();
}
return "record";
}
Класс RecordForm
public class RecordForm {
private String title;
private String text;
private MultipartFile[] photos;
public RecordForm(){
this.title=this.text="";
this.photos=new MultipartFile[5];
}
public void setPhotos(MultipartFile[] photos) {
this.photos = photos;
}
public MultipartFile[] getPhotos() {
return photos;
}
public void setTitle(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
public void setText(String text) {
this.text = text;
}
public String getText() {
return text;
}
}
