Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399

FormData в объект DTO Spring mvc

18.08.2018, 20:38. Показов 3857. Ответов 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)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.08.2018, 20:38
Ответы с готовыми решениями:

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

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

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

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

Решение

а хрень у тебя есть, которая понимает multipart? https://docs.spring.io/spring/... 16s08.html
0
 Аватар для Tsyklop
5 / 6 / 5
Регистрация: 01.01.2014
Сообщений: 399
19.08.2018, 20:47  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
а хрень у тебя есть, которая понимает multipart?
да, её не хватало. спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.08.2018, 20:47
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru