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

默认情况下未验证扩展默认值的验证组

张丰
2023-03-14

我有以下验证组:

public class ValidationGroups {

    public interface Create extends Default {}

    public interface Update extends Default {}

}
public class Usuario implements UserDetails {

    @NotNull(groups = { Update.class })
    @NotBlank(groups = { Update.class })
    @Length(max = 255, groups = { Update.class })
    private String name;

    @NotNull @NotEmpty @Email
    private String email;

}
@PostMapping("signup")
public String createUser(@Validated User user, 
            BindingResult result, Model model, RedirectAttributes redirectAttributes) {
@PostMapping("signup")
public String createUser(@Validated({ Default.class, Update.class }) User user, 
            BindingResult result, Model model, RedirectAttributes redirectAttributes) {

默认情况下,如果没有指定组,那么是否应该验证使用扩展default的组注释的所有字段?

共有1个答案

常嘉平
2023-03-14

我今天遇到了一个类似的问题,所以这可能会在将来对其他人有所帮助--默认关系的工作方式正好相反,正如这里所解释的:JSR303验证组继承

当您使用@validated(update.class)时,应用的验证是属于update.class及其所有继承链的验证,因此在这种情况下,update.class和default.class都将应用。

您试图做的是相反的事情,即保持@valid对所有验证组都有效。为此,您需要重新定义类的默认组:

@groupsequence({Usuario.class,update.class})公共类Usuario实现UserDetails

这将允许@valid应用所有验证。

 类似资料:
  • 问题内容: 如果您定义如下界面 您可以在任何代码段中编写如下 那么equals方法从何而来,接口是否还扩展了超类Object?,如果确实如此,接口如何扩展类? 假设让该接口扩展超类Object,那么如果您看到为什么像Set这样的集合接口定义了equals()和hashCode()方法呢?所有类都扩展了Object类,因此,如果您在Object类中存在的接口中定义任何抽象方法,则实现该接口的人无需实

  • 问题内容: 众所周知,根据JLS7 p.4.12.5, 每个实例变量均使用默认值初始化。例如(1): 但是我一直认为,这样的类实现(2): 绝对等于示例(1)。我期望,复杂的Java编译器会看到(2)中的所有这些初始化值都是多余的,并忽略了它们。 但是突然对于这两个类,我们有两个不同的字节码。 例如(1): 例如(2): 问题是: 为什么?但这是显而易见的要优化的事情。什么原因? UPD: 我使用

  • 我知道默认的验证消息文本可以这样编辑 更改默认HTML输入验证消息 但我想知道是否有一种方法将CSS作为默认验证消息框的目标 我真的很喜欢默认的验证,这是一个研究问题,我看了我的浏览器控制台尝试目标验证消息框。但浏览器并不接收它。 假设我想将验证消息的背景设置为蓝色而不是白色,或者我想更改字体大小。是否有任何was针对这些验证消息框CSS?

  • 默认情况下,我们的路由器是Yaf_Router, 而默认使用的路由协议是Yaf_Route_Static,是基于HTTP路由的, 它期望一个请求是HTTP请求并且请求对象是使用Yaf_Request_Http

  • LDAP的基础是什么?如果在配置期间没有给出任何基数。 我必须从基于web的应用程序验证/验证用户,并且我有java代码。 但是我需要为此建立基础(变量),我已经让另一个团队告诉我基础,他们说我们没有在LDAP上定制任何东西。LDAP的默认基数是什么?

  • 我想覆盖服务器faces web应用程序中的默认Hibernate验证程序消息,因此我阅读了这部分文档:https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/chapter-message-interpolation.html#section-消息插值 我在文件夹中创建了两个文件:和。文件内容为: 我使用的是德语版本