如何在视图中显示@AsserTrue触发的消息(Cross-field)



我有一个验证问题。

我有两个独立的对象,它们是日期:

  1. LocalDateTime startDate可以
  2. LocalDateTime endDate

在表单中,我做了一些验证,例如文本长度等,一切正常

但是我想对两个日期进行验证,即日期#2不能早于日期#1。

我决定使用@AssertTrue。

但是我想在提交表单后在视图中显示日期错误的消息,例如"输入的日期是错误的">

如何做类似于例如与Name字段相关的验证。当我们不输入时,发送表单后会出现我们需要更正的消息(下图)输入图片描述

CreateEventForm

public class CreateEventForm {
private Long id;
@NotBlank(message = "Field title is required.")
private String name;

private LocalDateTime startDate;
private LocalDateTime endDate;

@AssertTrue(message = "Fields startindDateTime should be before than endingDateTime")
private boolean isvalid() {
return startingDateTime.isBefore(endingDateTime);
}



我试了很多方法,但都无济于事

<代码>

当您需要在验证器中组合两个字段时,您需要编写自定义的类级别约束。

这个答案可以帮助:https://stackoverflow.com/a/2783859/4845935

相关内容

最新更新