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

如何解决验证失败的类[*]在组的持续时间[javax.validation.groups.默认,]

贺轶
2023-03-14

我的实体课

@NotNull
@Size(min = 1,message = "is required")
@LinkExists
private String link;

我的注释类LinkExists

String message() default "Invalid Link";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};

注释约束类

private Pattern pattern;
private Matcher matcher;
private static final String youtubePattern = "^(http(s)?:\\/\\/)?((w){3}.)?youtu(be|.be)?(\\.com)?\\/.+";

@Override
public boolean isValid(final String link, ConstraintValidatorContext context) {
    
    pattern = Pattern.compile(youtubePattern);
    if (link == null) {
        return false;
    }
    matcher = pattern.matcher(link);
    return matcher.matches();
}

我正在使用带有自定义注释的spring boot,但每当我输入错误的输入时,它就会崩溃,并在控制台中显示以下登录信息

Validation failed for classes [com.modern.school.entity.Video] during persist time for groups [javax.validation.groups.Default, ]
List of constraint violations:[
    ConstraintViolationImpl{interpolatedMessage='Invalid Link', propertyPath=link, rootBeanClass=class com.modern.school.entity.Video, messageTemplate='Invalid Link'}
]

@LinkExist是我的自定义注释如何修复此问题

共有1个答案

席兴平
2023-03-14
  1. 你试图验证一个链接(你认为它是有效的),你得到了那个错误吗

尝试删除模式的第一组和最后一组上的额外\项

^(http(s)?:\\/\\/)?((w){3}.)?youtu(be|.be)?(\\.com)?\\/.+

^(http(s)?:\/\/)?((w){3}.)?youtu(be|.be)?(\.com)?\/.+

用https://www.youtube.com/watch?v=sssssssss测试

我注意到在你的验证中你检查的是null,那么这个@NotNull就没有用了(留一个)

我认为你必须把你的名字从LinkExists改成validYoutubeLink,因为valid并不意味着视频存在

 类似资料:
  • 问题内容: 在Windows Vista SP2 + Python 2.7.10上,我可以连接到https://www.python.org,但不能连接到https://codereview.appspot.com 剧本: 并输出: 如何解决问题,https://codereview.appspot.com/到底有什么问题? 问题答案: 我的猜测是,它与OpenSSL中的替代链处理有关,如Pyth

  • AMSSL 证书管理使用文件验证失败。 使用文件验证是失败,不知道什么原因... 之前是可以的. [Linux] AMH 7.1 https://amh.sh [amssl-3.8 admin] [OK] amssl-3.8 is already installed. configure arguments: --prefix=/usr/local/nginx-1.24 --user=www --

  • 我需要一些解释为什么这个代码不编译: 错误: 类型Duration中的(TemporalAmount)方法不适用于参数(ChronoUnit) 正如本文所述: public static Duration from(TemporalAmount amount)从时间量中获取持续时间的实例。这将根据指定的金额获得持续时间。TemporalAmount表示一个时间量,可以是基于日期的,也可以是基于时间

  • 我遇到了一个问题,我的MySQL表有一个存储UTC时间偏移的字段。该字段为时间类型。这是出于遗留原因,我无法将列类型更改为更好的表示形式。然而,MySQL支持这一点。它允许用户在时间字段中存储负值,以表示负时差。我使用querydsl生成实体类,并将该字段映射到java。sql。时间物体。现在,当DB中有负值时,我面临一个问题。爪哇。sql。Time类将任何负值转换为前一天的时间。例如,如果DB中

  • 任何人谁可以解决这个问题的颤振。请帮帮我。谢谢 失败:生成失败,出现异常。 > 其中:Build file'C:\hello\u everyone\android\app\Build。梯度线:1 错误:评估项目“: app”时出现问题。 在Project类型的project': app'上找不到参数[]org.gradle.api.方法Properties()。 > 尝试:使用--stacktra

  • 问题内容: 假设我有一个要验证的用户名,在这种情况下,当验证失败并显示错误消息时,我需要用红色显示用户名outputText和用户名inputText字段。 我试图将所有这些内容绑定到一个面板组中,以便如果验证失败,则所有字段都将受到影响。但是,简单地将panelgroup放不起作用。 我的支持bean验证器 我的JSF 问题答案: 通过属性将输入组件绑定到视图。它可以用作EL中的组件参考,因此可