【发布时间】:2020-08-10 19:30:30
【问题描述】:
我有 Java 和 Spring
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}",从名称为“selStud”的选择中获得。示例selectedId = 5。
但是对于@RequestParam(required = false, value = "selDisc") Long idD,我从<ul name="selDisc"> 得到NULL。而@RequestParam(value = "selDisc") Long idD 不起作用,因为 selDisc 一直返回 null。
我有一个错误“所需的长参数不存在”
我想获得纪律 ID,我做错了什么?
【问题讨论】:
-
因为在调用selDisc的请求中大概没有参数
-
ul不是<form>元素,所以它不会发布任何内容,即使你给它name和value属性。如果您想发布一个名为selDisc且值为discipline.id的表单字段,请使用<input type="hidden" ...元素。
标签: java spring spring-boot spring-mvc thymeleaf