Почему @Requestparam возвращает ноль, а значение заполнено? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть Java с пружиной

    public String addStudent(@RequestParam(value = "selStud") Long idS,
                             @RequestParam(required = false, value = "selDisc") Long idD,
                             ModelMap modelMap){
        long selectedId = idS;
        long selDiscipline = idD;
        return "redirect:/";
    }

, а это HTML:

<form action="#" th:action="@{/add-student}" class="new-student-form" method="post" >
<ul name="selDisc" type="none" th:each="discipline : ${disciplineList.disciplines}" th:value="${discipline.id}">
                <div th:onclick="|javascript:showDiv('${discipline.id}');|"
                   th:text="${discipline.name}"
                     th:value="${discipline.id}"
                   class="discipline-name" >..
                </div>
                <div th:id="${discipline.id}">
                    <ul  class="discipline-info"
                        th:unless="${#lists.isEmpty(discipline.students)}">
                        <li th:each="student : ${discipline.students}"
                            th:text="${student.student}" class="studName" name="studName">
                            </li>
                        </li>
                    </ul>
                    <div name="studOption" th:id="${discipline.id}">
                        <select name="selStud" required >
                            <option th:each="student : ${students}"
                                    th:value="${student.id}"
                                    th:id="${student.id}"
                                    name="studentOption"
                                    th:text="${student.student}">Select</option>
                        </select>
                        <input type="submit" class="add-student-to-disc" value="Добавить в дисциплину">
                    </div>
                </div>
            </li>
        </ul>
</form>

С @RequestParam(value = "selStud") Long idS я получаю th:value="${student.id}" из Option, из Select с именем "selStud". Пример selectedId = 5.

Но с @RequestParam(required = false, value = "selDisc") Long idD я получаю NULL от <ul name="selDisc">. И @RequestParam(value = "selDisc") Long idD не работает, потому что selDis c все время возвращает ноль. У меня ошибка «Обязательный параметр Long отсутствует»

Я хочу получить идентификатор дисциплины, что я делаю неправильно?

1 Ответ

0 голосов
/ 27 апреля 2020

Я ставлю <input name="selDisc" th:value="${discipline.id}" type="hidden"> после первого деления.

Но это работает случайно.

...