【问题标题】:Spring form validation simplify error messagesSpring 表单验证简化错误消息
【发布时间】:2017-01-06 08:07:00
【问题描述】:

我在 spring + thymeleaf 中使用我的表单,我想知道是否有一种方法可以简化日期字段的错误消息,因为当值错误时我得到了这个:

相反,我想简单地写一个文字:你还不能出生,或者类似的东西。

型号:

@DateTimeFormat(pattern = "dd.mm.yyyy")
    @Past
    private Date dob;

表格:

Date: <input type="date" th:field="*{dob}" />
<p th:if="${#fields.hasErrors('dob')}" th:errors="*{dob}"></p>

感谢您的帮助!

【问题讨论】:

标签: spring spring-mvc spring-boot thymeleaf


【解决方案1】:

首先,您当前的消息不是由于日期在未来,而是由于日期格式错误并且无法解析日期。

除此之外,您还可以自定义错误消息,如下所示:https://stackoverflow.com/a/5781678/878361

【讨论】:

  • 但是为什么日期格式错误?我确实将其设置为 dd.mm.yyyy
  • 看看你是如何在java后端从字符串中解析日期的,并检查你是否在HTTP请求中发送了相同格式的日期字符串(例如:dd-MM-yyyy / yyyy-MM-dd等) .
  • @PrzemekWojtas 查看日期格式:stackoverflow.com/a/9519493/878361
【解决方案2】:
@Past(message="You can't be born yet")

希望这是您正在寻找的。​​p>

【讨论】:

    【解决方案3】:

    型号:

     @Temporal(javax.persistence.TemporalType.TIMESTAMP)
     private Date dob;
    

    表格:

    在表单中添加 taglib 和 dob 字段

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    

    添加日期属性

    <fmt:formatDate value="${dob}" pattern="dd-MM-yyyy" var="dob"/>
    <p th:if="${#fields.hasErrors('dob')}" th:errors="*{dob}"></p>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多