当前位置: 首页 > 知识库问答 >
问题:

Thymeleaf未显示Spring表单错误消息

马权
2023-03-14

我正在将Spring jsp应用程序迁移到Thymeleaf,但在显示表单错误时遇到问题。

@RequestMapping(method = RequestMethod.POST)
String save(@Valid CustomerForm form, BindingResult bindingResult, Model model, RedirectAttributes redirectAttributes) {
    if (bindingResult.hasErrors()) {
        model.addAttribute("form", form)
        return "app/customers/create"
    }
    ....
binding result = org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'customerForm' on field 'name': rejected value []; codes [customerForm.name.NotBlank,name.NotBlank,java.lang.String.NotBlank,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [customerForm.name,name]; arguments []; default message [name]]; default message [may not be empty]

当我尝试使用以下方法显示错误时:

<ul>
    <li th:each="e : ${#fields.detailedErrors()}" th:class="${e.global}? globalerr : fielderr">
        <span th:text="${e.global}? '*' : ${e.fieldName}">The field name</span> |
        <span th:text="${e.message}">The error message</span>
    </li>
</ul>

它不会显示任何错误。

我尝试了http://www.thymeleaf.org/doc/html/thymeleaf-spring3.html#validation-and-error-messages#validation-and-error-messages上的各种替代方案,但没有成功。

注意:我试图通过th:object:在表单集中显示错误

<form id="customer-form" action="#" th:action="@{/app/customers}" th:object="${form}" method="post" class="form-horizontal">
    <ul>
        <li th:each="e : ${#fields.detailedErrors()}" th:class="${e.global}? globalerr : fielderr">
            <span th:text="${e.global}? '*' : ${e.fieldName}">The field name</span> |
            <span th:text="${e.message}">The error message</span>
        </li>
    </ul>
</form>

共有1个答案

慕容宇
2023-03-14

我想你可能和我有同样的问题--请看:

  • 字段对象函数(Spring)

答案是丹尼尔费尔南德斯。基本上,您的表单对象th:object=“${form}”名为“form”但您的控制器查找的是“CustomerForm”(类名),而不是“form”(变量名)

从该链接复制使用:

public String post(@Valid FormData formData, BindingResult result, Model model){
    // th:object="${formData}"
}

public String post(@Valid @ModelAttribute("data") FormData data, BindingResult result, Model model){
    // th:object="${data}"
} 
 类似资料:
  • 我使用的是关于这个链接的教程: http://www.mkyong.com/spring-security/display-custom-error-message-in-spring-security/ 在登录表单上显示一个自定义错误消息,我在开始时就得到了它。但是在为自定义失败身份验证器处理程序声明authentication-failure-handler-ref=“myautherrorh

  • 我已经找到了一些答案,但我的问题仍然没有解决。 我刚刚制作了一个新的应用程序,发现注册页面上的错误消息根本没有显示出来。以下是我在本网站上找到的一些答案: 只需删除,'中间件'= 或 \照明\会话\中间件\开始会话::class,\照明\视图\中间件\ShareErrs From会话::class, 从受保护的$middlewareGroup到karnel中受保护的$middleware中间件。p

  • 如何在wordpress忍者表单插件中显示自定义错误消息。我已经搜索了忍者表格文件,但无法到达网站。默认情况下,错误消息显示为 我希望它是 提前道谢。

  • 问题内容: 我是Django表单,它可以检查表单是否有效: 但是我错过了如果无效的怎么办?如何返回带有错误消息的表格?我没有在任何示例中看到“其他”。 问题答案: 如果在表单无效时呈现相同的视图,则可以在模板中使用来访问表单错误。 一个例子:

  • 我创建了一个使用Thymeleaf作为模板引擎的Spring Boot Web应用程序。我配置了以在子文件夹中查找消息: 在这个文件夹中,我创建了文件,内容为。在我的模板中,我尝试这样显示文本: 但在呈现页面时,我会得到以下结果: 我错过了什么?我必须配置任何其他bean吗? P、 S.: 在“服务器端”,我可以使用MessageSource获取消息(“ticket.type.BUG”,null,