powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring MVC, 2 формы на странице
3 сообщений из 3, страница 1 из 1
Spring MVC, 2 формы на странице
    #38668372
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
У меня на 1 странице сразу 2 формы:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<form:form commandName="profileDTO" action='profileInfoForm' method='POST' enctype="multipart/form-data" >
	............
	<button type="submit" >Сохранить изменения</button>
</form:form>

<form:form commandName="passDTO" action='profilePassForm' method='POST' >
	.............
	<button type="submit" >Изменить пароль</button>
</form:form>


Каждый action обрабатывается в контроллере:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@RequestMapping("/profileInfoForm")
public ModelAndView profileInfoFormSubmit(
			@Valid @ModelAttribute("profileDTO") ProfileDTO profileDTO,
			HttpSession session, BindingResult result) {
		.............
		return new ModelAndView("Profile", "msg", "Данные успешно сохранены");
}

@RequestMapping("/profilePassForm")
public ModelAndView profilePassFormSubmit(
			@Valid @ModelAttribute("passDTO") PassDTO passDTO,
			HttpSession session, BindingResult result) {
		.............
		return new ModelAndView("Profile", "msg", "Данные успешно сохранены");
}


Оно работает, т.е. в БД изменения появляются. Но проблема в том, что при нажатии одной из кнопок выдает ошибку.
К примеру, меняем пароль и получаем:
Код: xml
1.
2.
3.
SEVERE: Neither BindingResult nor plain target object for bean name 'profileDTO' available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'profileDTO' available as request attribute
	at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)


Меняем информацию пользователя, т.е. не трогаем пароль, и получаем:
Код: html
1.
2.
3.
SEVERE: Neither BindingResult nor plain target object for bean name 'passDTO' available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'passDTO' available as request attribute
	at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)


Кажется, что при отправки информации, оно ругается, что данные с одной из форм не заполнены.
Объединить информацию о пользователе и изменение пароля не вариант, надо чтобы эти формы на странице были в разных табах.
...
Рейтинг: 0 / 0
Spring MVC, 2 формы на странице
    #38668407
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашлось решение
...
Рейтинг: 0 / 0
Spring MVC, 2 формы на странице
    #38668477
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил аргументы в методы
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
@RequestMapping("/profileInfoForm")
public ModelAndView profileInfoFormSubmit(
			@Valid @ModelAttribute("profileDTO") ProfileDTO profileDTO,
			@ModelAttribute("passDTO") PassDTO passDTO,
			HttpSession session, BindingResult result) {
		.............
		return new ModelAndView("Profile", "msg", "Данные успешно сохранены");
}

@RequestMapping("/profilePassForm")
public ModelAndView profilePassFormSubmit(
			@Valid @ModelAttribute("passDTO") PassDTO passDTO,
			@ModelAttribute("profileDTO") ProfileDTO profileDTO,
			HttpSession session, BindingResult result) {
		.............
		return new ModelAndView("Profile", "msg", "Данные успешно сохранены");
}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring MVC, 2 формы на странице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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