Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получаю данные в Rest контроллере Spring / 18 сообщений из 18, страница 1 из 1
27.06.2018, 12:05
    #39666438
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Есть 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
27.06.2018, 12:07
    #39666440
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Отправляю 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
27.06.2018, 12:25
    #39666451
Valentin Kolesnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
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
27.06.2018, 12:26
    #39666452
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
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
27.06.2018, 12:32
    #39666461
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Ну и я не понял, если форм аутентификацию делать руками (что странно) то почему AJAX отправка а не сабмит POST?
...
Рейтинг: 0 / 0
27.06.2018, 12:33
    #39666462
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Petro123,
И при чем тут аунтификация если речь идет о регистрации?
Не знаю где вы увидели логин окно.
...
Рейтинг: 0 / 0
27.06.2018, 12:33
    #39666463
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Valentin Kolesnikov,
для какого класса?
...
Рейтинг: 0 / 0
27.06.2018, 12:38
    #39666467
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
TsyklopPetro123,
И при чем тут аунтификация если речь идет о регистрации?
Не знаю где вы увидели логин окно.
Ok.
Тогда почему не POST?
...
Рейтинг: 0 / 0
27.06.2018, 12:42
    #39666470
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Petro123Ok.
Тогда почему не POST?
Запрос POST. в ajax-е указано что пост для любых запросов.
...
Рейтинг: 0 / 0
27.06.2018, 12:49
    #39666476
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Сделал так:

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

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

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

Для класса ManagerController.

С уважением, Валентин
...
Рейтинг: 0 / 0
27.06.2018, 14:54
    #39666575
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Valentin Kolesnikov,
У меня это класс отвечающий за запросы Менеджера. А вешать один класс на каждый запрос сильно.
...
Рейтинг: 0 / 0
27.06.2018, 14:56
    #39666580
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
Tsyklop,
Не решил что ли?
В демке как сделано?
Со спрингом там конечно полно хитростей).
...
Рейтинг: 0 / 0
27.06.2018, 17:40
    #39666743
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получаю данные в Rest контроллере Spring
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
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получаю данные в Rest контроллере Spring / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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