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

Как из формы Spring передать параметр id

29.08.2018, 09:15. Показов 3975. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется форма для редактирования которая вызывается при запросе GET
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.....
        <form:form method="POST"  action="${pageContext.request.contextPath}/editStudent" commandName="student" enctype="multipart/form-data">
 
        <div class="row">
            <div class="col-sm-6">
                <div class="form-group row">
                    <div class="col-3 align-items-start">
                        <label>First Name:</label>
                    </div>
                    <div class="col-7 align-items-start">
                        <form:input path="firstName" class="form-Control"/>
                    </div>
....
                </div>
                <div class="form-group row">
                <img id="blah" src="<c:url value="../resources/images/${student.id}.jpg" />" alt="your image" width="200" height="178"/>
....
В контроллере обрабатывается так
Java
1
2
3
4
5
6
7
8
9
10
11
12
    @RequestMapping(value = "/editStudent/{studentId}", method = RequestMethod.GET)
    public String editStudent(@PathVariable long studentId, Model model) throws IOException{
 
        Student student = studentDAO.getStudentById(studentId);
        model.addAttribute(student);
        List<Group> groups = new ArrayList<>(groupDAO.getAllGroups());
        model.addAttribute("groups", groups);
        List<PhoneType> phoneTypes = new ArrayList<>(phoneTypeDAO.getAllPhoneTypes());
        model.addAttribute("phoneTypes", phoneTypes);
 
        return "editStudent";
    }
С этим все впорядке. По studentId в форме появляются данные соответствующие studentId
Но далее, после редактирования формы необходимо сделать POST куда передать не только отредактированные данные но и studentId
Делаю так
Java
1
2
3
4
5
6
    @RequestMapping(value = "/editStudent", method = RequestMethod.POST)
    public String editStudent(@ModelAttribute("student") Student student,
                              @RequestParam(value = "studentID") long studentId,
                              HttpServletRequest request ) {
        studentDAO.updateStudent(student, studentId);
....
Подскажите пожалуйста как из формы передать в контроллер @RequestParam(value = "studentID"?
После GET параметр id имеется как ${student.id}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2018, 09:15
Ответы с готовыми решениями:

Как передать id из формы в контроллер Spring
Имеется форма для редактирования студента в которой есть разные input типа &lt;div class=&quot;col-7...

Как передать параметр поля формы в запрос?
Люди, подскажите плз, как мне правильно передать значение поля формы в запрос? пробовал . но оно все равно спрашивает его при рефреше :(

Как передать параметр из формы в ASP код ?
subj

8
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
29.08.2018, 10:32
VlGuvin, Добавьте в форму невидимый input, присвоив ему значение {strudent.id}, при этом, указав name этого input как studentID.

И вы используете старую конструкцию RequestMapping, когда имеется PostMapping / GetMapping.
И вы можете не писать ${pageContext.request.contextPath}

Добавлено через 10 минут
И у вас возможна утечка памяти:
Java
1
List<Group> groups = new ArrayList<>(groupDAO.getAllGroups());
1
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
29.08.2018, 13:07  [ТС]
Спасчибо. hidden сработало.
И вы можете не писать ${pageContext.request.contextPath}
Как тогда будет выглядеть строка запроса из формы? Так правильно?
Java
1
<form:form method="POST"  action="/editStudent/" commandName="student" enctype="multipart/form-data">
0
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
29.08.2018, 13:10
VlGuvin, да, только без последнего слеша
и навсякий случай, вставьте c:url :
HTML5
1
action="<c:url value="/editStudent"/>"
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
29.08.2018, 13:18  [ТС]
Java
1
И у вас возможна утечка памяти:
Почему? Все добавляется в модель как атрибут...
0
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
29.08.2018, 13:34
VlGuvin, вы создаете новый объект.

getAllGroups - предполагаю, отдает List, соответсвенно, можно написать:
Java
1
List<Group> groups = groupDAO.getAllGroups();
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
29.08.2018, 14:21  [ТС]
Вы имеете ввиду, что
Java
1
 List<Group> groups = new ArrayList<>(groupDAO.getAllGroups());
и
Java
1
List<Group> groups = groupDAO.getAllGroups();
это разные вещи.
Тоесть в первом случае создается ненужный объект
Java
1
new ArrayList<>(groupDAO.getAllGroups())
Во втором метод groupDAO.getAllGroups(); просто загружает данные в уже существующий объект-список List<Group> groups
Правильно-ли я рассуждаю?
0
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
29.08.2018, 14:37
VlGuvin,
Java
1
List<Group> groups = groupDAO.getAllGroups();
Создается новая ссылка на лист из groupDAO.getAllGroups()
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
29.08.2018, 14:50  [ТС]
В смысле
Java
1
List<Group> groups = new ArrayList<>(groupDAO.getAllGroups());
- это новая ссылка?

Добавлено через 10 минут
Если да то Вы правы. Память расходуется. Спасибо за подсказку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2018, 14:50
Помогаю со студенческими работами здесь

Как передать параметр из одной формы в другую
Мне нужно передать из одной формы в другую. Т.е на форме кнопка, а по кнопке открывается новая форма и в поле выводится этот параметр?

Как в гиперссылке передать параметр для формы с базой
Так никто и не подсказал. Наверное никто не знает? Подскажите, как в гиперссылке или JavaScript передать значение параметра из одной формы...

Как передать параметр из поля формы в командную строку?
С помощью ASPSMARTUPLOAD гружу файл в базу, т.е есть страничка с формой form.asp и ее action - файл upload.asp. Ну соответственно в форме...

Как передать имя формы как параметр функции
Всем здравствуйте. Почему не срабатывает void WriteSettingToReg(TForm frm) { TRegistry *reg=new TRegistry(); ...

Как передать параметр из jsp java страницы в функцию javascript и возвратить обратно другой параметр
На jsp странице имеется динамически формируемая таблица с чекбоксами в первой колонке каждой строки &lt;tbody&gt; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru