通过表格获取数据并传递给控制器

时间:2019-06-19 05:40:23

标签: spring spring-boot spring-mvc thymeleaf

我想将一个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]”)

3 个答案:

答案 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方法