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表单验证错误信息无法显示在页面上怎么办?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2608431.html