java 如何在视图中显示@AsserTrue触发的消息(跨字段)

l7wslrjt  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(262)

我有一个问题的验证。
我有两个独立的对象,它们是日期:
1.本地日期时间开始日期
1.本地日期时间结束日期
在表单中,我做了一些验证,例如文本长度等,一切都很好。
但是我想对两个日期进行相互验证,即日期#2不能早于日期#1。
我决定使用@AssertTrue。
但我希望在提交日期错误的表单后视图中显示消息,例如“输入的日期错误”
如何执行类似于例如与名称字段相关的验证。当我们不输入时,发送表单后会出现一条消息,我们需要更正(下图)enter image description here

创建事件窗体

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);
    }

我试了很多方法,但都没有用

uxhixvfz

uxhixvfz1#

由于需要在验证器中合并两个字段,因此需要编写自定义class-level constraint
这个答案可以帮助:https://stackoverflow.com/a/2783859/4845935

相关问题