powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получаю данные в Rest контроллере Spring
18 сообщений из 18, страница 1 из 1
Не получаю данные в Rest контроллере Spring
    #39666438
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть REST контроллер. Есть запрос на регистрацию. В ней есть файл. Запрос проходит но все данные в RegisterForm = null. И не важно есть файл или нет. Почему так?

Если вместо @ModelAttribute поставлю @RequestBody то запрос не проходит.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
@RestController
public class ManagerController {

    private static final Logger LOGGER = LogManager.getLogger(ManagerController.class);

    @RequestMapping(value = "/api/manager/login", consumes = "application/json", produces = "application/json")
    public Response login(Response response, @RequestBody LoginForm loginForm) {

        LOGGER.info(loginForm);

        return response;
    }

    @PostMapping(value = "/api/manager/register", produces = "application/json")
    public Response register(Response response, @ModelAttribute RegisterForm registerForm) {

        LOGGER.info(registerForm);

        return response;
    }

}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
public class RegisterForm {

    private Type type;

    private String firstName;
    private String lastName;

    private String phone;

    private long countryId;

    private String email;
    private String password1;
    private String password2;

    private MultipartFile file;

    public RegisterForm() { }

    public Type getType() {
        return type;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public String getPhone() {
        return phone;
    }

    public long getCountryId() {
        return countryId;
    }

    public String getEmail() {
        return email;
    }

    public String getPassword1() {
        return password1;
    }

    public String getPassword2() {
        return password2;
    }

    public MultipartFile getFile() {
        return file;
    }

    @Override
    public String toString() {
        return "RegisterForm{" +
                "type=" + type +
                ", firstName='" + firstName + '\'' +
                ", lastName='" + lastName + '\'' +
                ", phone='" + phone + '\'' +
                ", countryId=" + countryId +
                ", email='" + email + '\'' +
                ", password1='" + password1 + '\'' +
                ", password2='" + password2 + '\'' +
                ", file=" + file +
                '}';
    }

    public enum Type {
        ADMIN, OPERATOR;
    }

}
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666440
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отправляю JS как formData:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
ajax(true, '/api/manager/register', new FormData(core.body.find('form')[0])).done(result=>{
            if(result.status) {
                location.href='/register/success';
            } else {
                core.toast(result.message);
            }
        }).fail(result=>{
            console.log(result);
        });
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666451
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopОтправляю JS как formData:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
ajax(true, '/api/manager/register', new FormData(core.body.find('form')[0])).done(result=>{
            if(result.status) {
                location.href='/register/success';
            } else {
                core.toast(result.message);
            }
        }).fail(result=>{
            console.log(result);
        });



Возможно нужно добавить аннотацию для класса:

Код: java
1.
@RequestMapping("api/manager/register")



С уважением, Валентин
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666452
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
Тебе уже шутили. Если есть аутентифиаця, то где она?

Код: java
1.
2.
3.
4.
5.
6.
7.
<login-config> 
		<auth-method> FORM </ auth-method> 
		<form-login-config> 
			<form-login-page> /login.html </ form-login-page> 
			<form-error-page> /login-failed.html </ form-error-page> 
		</ form-login-config> 
	</ login-config> 


Это у тебя выше логин окно?
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666461
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и я не понял, если форм аутентификацию делать руками (что странно) то почему AJAX отправка а не сабмит POST?
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666462
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
И при чем тут аунтификация если речь идет о регистрации?
Не знаю где вы увидели логин окно.
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666463
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,
для какого класса?
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666467
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopPetro123,
И при чем тут аунтификация если речь идет о регистрации?
Не знаю где вы увидели логин окно.
Ok.
Тогда почему не POST?
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666470
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Ok.
Тогда почему не POST?
Запрос POST. в ajax-е указано что пост для любых запросов.
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666476
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@PostMapping(value = "/api/manager/register", consumes = "multipart/*", produces = "application/json")
    public Response register(Response response, @RequestParam(value = "file", required = false) MultipartFile file, @RequestParam("firstName") String name) {

        LOGGER.info(file);
        LOGGER.info(name);

        return response;
    }



Параметры стали приходить. Но как все параметры, включая файл обернуть в обертку RegisterForm?
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666483
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopPetro123Ok.
Тогда почему не POST?
Запрос POST. в ajax-е указано что пост для любых запросов.
Ну дак оверхед же.
На самит все поля формы Автомаически отправляются.
Вообще нчего писат не надо.
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666484
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopPetro123Ok.
Тогда почему не POST?
Запрос POST. в ajax-е указано что пост для любых запросов.
Ну дак оверхед же.
На самит все поля формы Автомаически отправляются.
Вообще нчего писат не надо.
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666485
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
при чем тут отправка если у меня проблема с получением?

ПО отдельности параметры получаю. Выше написал. А вот как обернуть в обертку как...
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666491
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopPetro123,
при чем тут отправка если у меня проблема с получением?

ПО отдельности параметры получаю. Выше написал. А вот как обернуть в обертку как...
Понятно.
Я чет подумал что тебе
form.submit().
В js достаточно.
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666563
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopValentin Kolesnikov,
для какого класса?

Для класса ManagerController.

С уважением, Валентин
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666575
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,
У меня это класс отвечающий за запросы Менеджера. А вешать один класс на каждый запрос сильно.
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666580
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
Не решил что ли?
В демке как сделано?
Со спрингом там конечно полно хитростей).
...
Рейтинг: 0 / 0
Не получаю данные в Rest контроллере Spring
    #39666743
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
Решил вот так:

Код: java
1.
2.
3.
4.
5.
6.
7.
@PostMapping(value = "/api/manager/register", consumes = "multipart/*", produces = "application/json")
    public Response register(Response response, RegisterForm registerForm) {

        LOGGER.info(registerForm);

        return response;
    }



в самом классе RegisterForm добавил сеттеры полей. Я хотел без них, но увы.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получаю данные в Rest контроллере Spring
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]