SpringBoot表单验证错误信息无法显示在页面上怎么办?
spring boot验证错误信息无法在渲染页面时正确显示
通过controller操作验证信息时,错误信息会在controller中正常存在,但在渲染页面时却无法正常获取。这往往是因为:
原因:
在controller中,可以通过使用errors对象获取验证错误信息,并将其添加到模型中。而在页面中,使用thymeleaf语法通过#fields表达式访问错误信息。如果页面中无法获取错误信息,可能是由于以下原因:
解决方案:
根据问题提供的代码,可以发现问题出在模型中存在两个testuser对象。在处理表单提交时,controller中将参数testuser添加到模型中,而在页面中,通过th:object属性绑定了错误信息。如果两个testuser对象名称不同,页面将无法找到正确的对象并获取验证错误信息。
因此,需要修改testusercontroller中添加模型的方式,确保添加到模型中的对象名称与页面中th:object绑定的名称相同。修改后的代码如下:
@PostMappingpublic String register(@Valid TestUser testUser, Errors errors) { if (errors.hasErrors()) { return "user"; } return "redirect:/";}@ModelAttribute(name = "testUser")public TestUser testUser() { return new TestUser();}
另外,还可以检查thymeleaf页面中是否正确使用了#fields表达式。确保th:if和th:errors属性正确引用了需要显示错误信息的字段。
修改代码并检查表达式后,页面中的错误信息应该会正常渲染。
以上就是Spring Boot表单验证错误信息无法显示在页面上怎么办?的详细内容,更多请关注范的资源库其它相关文章!
转载请注明:范的资源库 » SpringBoot表单验证错误信息无法显示在页面上怎么办?