Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 398
1

FormData в объект DTO Spring mvc

18.08.2018, 20:38. Показов 2443. Ответов 14
Метки нет (Все метки)

Есть такое DTO:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class OwnerProfileUpdateDTO {
 
    private String firstName;
 
    private String lastName;
 
    private String phone;
 
    private String company;
 
    private long countryId;
    private long regionId;
    private long townId;
 
    private MultipartFile avatar;
 
    public OwnerProfileUpdateDTO() {}
 
    // getters and setters
 
}
Есть REST контроллер:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@RestController
@Secured("OWNER")
@PreAuthorize("isAuthenticated()")
@RequestMapping(value = "/api/v1/owner",produces = MediaType.APPLICATION_JSON_VALUE)
public class ApiOwnerController {
 
    @Autowired
    private OwnerService ownerService;
 
    private static final Logger LOGGER = LogManager.getLogger(ApiOwnerController.class);
 
    @PostMapping(value = "/profile/update", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public Response fillUpdate(Response response, OwnerProfileUpdateDTO ownerProfileUpdateDTO) {
        LOGGER.info(ownerProfileUpdateDTO);
        response.setSuccess("OK");
        return response;
    }
 
}
Отправляю данные на сервер в формате FormData при помощи AJAX:

Javascript
1
2
3
4
5
6
7
8
9
$.ajax({
       url: 'update',
       data: new FormData($('form')[0]),
       type: 'POST',
       dataType: 'json',
       processData: false,
       contentType: false,
       enctype: 'multipart/form-data'
})
Мне нужно передать файл и дополнительные данные, поэтому использую FormData Но в ownerProfileUpdateDTO все поля все null. почему так? не могу понять.

Пробовал к OwnerProfileUpdateDTO ownerProfileUpdateDTO добавлять аннотацию @RequestBody, но при запросе выдает ошибку:

Java
1
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=----WebKitFormBoundary0iIfmbRKA2DP0lnF;charset=UTF-8' not supported
что не так? как правильно сделать?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2018, 20:38
Ответы с готовыми решениями:

Spring Boot Entity and DTO
Добрый день, уважаемые коллеги :senor: Потратил весь день, не могу найти ни где пример, что бы...

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями...

задания по spring core и spring mvc для новичков
Какие задания можно предложить новичкам для выполнения после знакомства их с spring core и mvc ?

Перевод проекта из Spring Maven в обычный Spring MVC
Здравствуйте. Подскажите, реально ли взять готовый проект, например -...

14
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,367
18.08.2018, 21:54 2
Цитата Сообщение от Tsyklop Посмотреть сообщение
добавлять аннотацию @RequestBody
@ModelAttribute должно помочь.
0
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 398
18.08.2018, 23:07  [ТС] 3
Цитата Сообщение от JIeIIIa Посмотреть сообщение
@ModelAttribute должно помочь.
Ошибка нет как и данных в DTO. Все поля null
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,367
19.08.2018, 00:34 4
Tsyklop, код формы покажите.
0
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 398
19.08.2018, 00:36  [ТС] 5
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Tsyklop, код формы покажите.
Какой формы?
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,367
19.08.2018, 00:43 6
Цитата Сообщение от Tsyklop Посмотреть сообщение
data: new FormData($('form')[0])
Данные Вы откуда шлете?
0
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 398
19.08.2018, 00:47  [ТС] 7
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Данные Вы откуда шлете?
Ну есть html форма с данными и в которых есть file.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,367
19.08.2018, 00:49 8
Значит форма все же есть...
0
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 398
19.08.2018, 00:50  [ТС] 9
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Значит форма все же есть...
Форма есть, но я её беру что бы взять все поля. Сама форма не сабмитится.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,367
19.08.2018, 00:59 10
Разве я спрашивал для чего берете?
0
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 398
19.08.2018, 01:03  [ТС] 11
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Разве я спрашивал для чего берете?
нет.
0
Эксперт Java
3106 / 2588 / 798
Регистрация: 05.07.2013
Сообщений: 12,471
19.08.2018, 15:23 12
это спринг бут у тебя или просто спринг?
0
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 398
19.08.2018, 16:28  [ТС] 13
Цитата Сообщение от xoraxax Посмотреть сообщение
это спринг бут у тебя или просто спринг?
просто спринг.
0
Эксперт Java
3106 / 2588 / 798
Регистрация: 05.07.2013
Сообщений: 12,471
19.08.2018, 19:20 14
Лучший ответ Сообщение было отмечено Tsyklop как решение

Решение

а хрень у тебя есть, которая понимает multipart? https://docs.spring.io/spring/... 16s08.html
0
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 398
19.08.2018, 20:47  [ТС] 15
Цитата Сообщение от xoraxax Посмотреть сообщение
а хрень у тебя есть, которая понимает multipart?
да, её не хватало. спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2018, 20:47

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Jetty embedded + Spring MVC + Spring Security
Добрый день. По роду работы приходилось писать на JavaSE, в том числе и сложные клиент/серверные...

Spring mvc spring jdbc
Простое веб приложение с использованием Spring mvc + jdbc(JdbcTemplate). Можно добавить запись в...

Spring MVC Hello + name
Здравствуйте! Только-только начал изучать это дело поэтому сильно не смейтесь. Есть задача сделать...

Spring MVC
Привет. Помогите, люди добрые. Обьясниет как передать данные из HTML формы на контролер в Spring,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.