我想将一个id作为用户输入并传递给控制器以获取特定id的数据
当我在URL中手动传递ID时,它就起作用了-http://localhost:8080/student/1
<form th:action="@{{student}/{id}}" th:object="${Student}" method="post">
Roll Number:<br>
<input type="text" th:field="*{id}"><br>
<br><br>
<input class="button" type="submit" value="Submit">
</form>
@GetMapping(value = "/student/{id}")
public Optional<Student> getStudentDetail(@PathVariable int id){
return studentRepository.findById(id) ;
}
Whitelabel错误页面 此应用程序没有针对/ error的显式映射,因此您将其视为后备。
IST 2019年6月19日星期三11:04:22 发生意外错误(类型=内部服务器错误,状态= 500)。 模板解析期间发生错误(模板:“类路径资源[templates / student.html]”)
答案 0 :(得分:0)
对于th:field
,您应该使用<input>
:
<input type="text" th:field="*{id}">
答案 1 :(得分:0)
更改为 AmirBll , ,您必须将控制器HTTP
的方法从@GetMapping(value = "/student/{id}")
更改为@PostMapping(value = "/student/{id}")
作为form data
提交是您在表单中声明的POST
方法。
答案 2 :(得分:0)
在form属性中,您已使用method =“ post”,而在控制器类中,您正在使用@GetMapping。使用这个
<input type="text" th:field="*{id}">
代替
<input type="text" th:="*{id}"><br>
还可以在Student类中获取id属性的getter / setter方法