Java org.springframework.validation.BeanPropertyBindingResult:5个错误

Java org.springframework.validation.BeanPropertyBindingResult:5个错误,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,我在春季的申请表中填写了联系方式。我有一个问题: 字段“name”上的对象“contact”中的字段错误:值被拒绝 [零];代码 [NotBlank.contact.name,NotBlank.name,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[联系人姓名];参数[];默认消息[姓名]; 上对象“联系人”中的默认消息

我在春季的申请表中填写了联系方式。我有一个问题:

字段“name”上的对象“contact”中的字段错误:值被拒绝 [零];代码 [NotBlank.contact.name,NotBlank.name,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[联系人姓名];参数[];默认消息[姓名]; 上对象“联系人”中的默认消息[不能为空]字段错误 字段“消息”:拒绝的值[null];代码 [NotBlank.contact.message,NotBlank.message,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[contact.message,message];参数[];默认消息 [信息];对象中的默认消息[不能为空]字段错误 字段“主题”上的“联系人”:拒绝的值[null];代码 [NotBlank.contact.subject,NotBlank.subject,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[contact.subject,subject];参数[];默认消息 [主题]];对象中的默认消息[不能为空]字段错误 字段“phone”上的“contact”:拒绝的值[null];代码 [NotBlank.contact.phone,NotBlank.phone,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[contact.phone,phone];参数[];默认消息[phone]; 对象“联系人”中的默认消息字段错误 字段“email”上:拒绝值[null];代码 [NotBlank.contact.email,NotBlank.email,NotBlank.java.lang.String,NotBlank]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[contact.email,email];参数[];默认消息[email]; 默认消息[不能为空]]

控制器:

@Controller

public class ContactController {
    @Autowired
    MailComponent mailComponent;
    @GetMapping("/contact")
    public String contact(@ModelAttribute Contact contact) {
        return "contact";
    }
    @PostMapping("/contact")
    public String processContact(@Validated Contact contact, RedirectAttributes model, BindingResult bindingResult) {

        if (bindingResult.hasErrors())
            return "contact";

        if (mailComponent.sendSimpleMail(contact)) {
            model.addFlashAttribute("classCss", "alert sukcesu");
            model.addFlashAttribute("message", "Twoja wiadomość została wysłana");
        } else {
            model.addFlashAttribute("classCss", "alert ostrzeżenie");
            model.addFlashAttribute("message", "Wystąpił nieoczekiwany błąd, powtórz później");
        }

        return "redirect:/";
    }


}
实体:

public class Contact {
    @NotBlank
    @Pattern(regexp = "[\\p{L} '-]+", message = "{com.diet4you.LapkoEkaterina.constraint.Name.message}")
    private String name;

    @NotBlank
    @Pattern(regexp = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])",
            message = "{com.diet4you.LapkoEkaterina.constraint.Email.message}")
    private String email;

    @NotBlank
    @Pattern(regexp = "\\+(?:[0-9] ?){6,14}[0-9]", message = "{com.diet4you.LapkoEkaterina.constraint.Phone.message}")
    private String phone;

    @NotBlank
    private String subject;

    @NotBlank
    private String message;

    public Contact() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
验证属性:

javax.validation.constraints.AssertFalse.message = must be false
javax.validation.constraints.AssertTrue.message  = must be true
javax.validation.constraints.DecimalMax.message  = must be less than ${inclusive == true ? 'or equal to ' : ''}{value}
javax.validation.constraints.DecimalMin.message  = must be greater than ${inclusive == true ? 'or equal to ' : ''}{value}
javax.validation.constraints.Digits.message      = numeric value out of bounds (<{integer} digits>.<{fraction} digits> expected)
javax.validation.constraints.Future.message      = must be in the future
javax.validation.constraints.Max.message         = must be less than or equal to {value}
javax.validation.constraints.Min.message         = must be greater than or equal to {value}
javax.validation.constraints.NotNull.message     = may not be null
javax.validation.constraints.Null.message        = must be null
javax.validation.constraints.Past.message        = must be in the past
javax.validation.constraints.Pattern.message     = must match "{regexp}"
javax.validation.constraints.Size.message        = size must be between {min} and {max}

org.hibernate.validator.constraints.CreditCardNumber.message        = invalid credit card number
org.hibernate.validator.constraints.EAN.message                   = invalid {type} barcode
org.hibernate.validator.constraints.Email.message                   = not a well-formed email address
org.hibernate.validator.constraints.Length.message                  = length must be between {min} and {max}
org.hibernate.validator.constraints.LuhnCheck.message               = The check digit for ${validatedValue} is invalid, Luhn Modulo 10 checksum failed
org.hibernate.validator.constraints.Mod10Check.message              = The check digit for ${validatedValue} is invalid, Modulo 10 checksum failed
org.hibernate.validator.constraints.Mod11Check.message              = The check digit for ${validatedValue} is invalid, Modulo 11 checksum failed
org.hibernate.validator.constraints.ModCheck.message                = The check digit for ${validatedValue} is invalid, ${modType} checksum failed
org.hibernate.validator.constraints.NotBlank.message                = This field is required
org.hibernate.validator.constraints.NotEmpty.message                = may not be empty
org.hibernate.validator.constraints.ParametersScriptAssert.message  = script expression "{script}" didn't evaluate to true
org.hibernate.validator.constraints.Range.message                   = must be between {min} and {max}
org.hibernate.validator.constraints.SafeHtml.message                = may have unsafe html content
org.hibernate.validator.constraints.ScriptAssert.message            = script expression "{script}" didn't evaluate to true
org.hibernate.validator.constraints.URL.message                     = must be a valid URL

org.hibernate.validator.constraints.br.CNPJ.message                 = invalid Brazilian corporate taxpayer registry number (CNPJ)
org.hibernate.validator.constraints.br.CPF.message                  = invalid Brazilian individual taxpayer registry number (CPF)
org.hibernate.validator.constraints.br.TituloEleitoral.message      = invalid Brazilian Voter ID card number
com.diet4you.LE.Name.message                            = Tylko litery
com.diet4you.LE.Email.message                           = Nie format  e-mail
com.diet4you.LE.Phone.message                           = InNie format numeru
javax.validation.constraints.AssertFalse.message=必须为false
javax.validation.constraints.AssertTrue.message=必须为true
javax.validation.constraints.DecimalMax.message=必须小于${inclusive==true?或等于“:”}{value}
javax.validation.constraints.DecimalMin.message=必须大于${inclusive==true?或等于“:”}{value}
javax.validation.constraints.Digits.message=数值超出范围(.expected)
javax.validation.constraints.Future.message=必须在将来
javax.validation.constraints.Max.message=必须小于或等于{value}
javax.validation.constraints.Min.message=必须大于或等于{value}
javax.validation.constraints.NotNull.message=不能为null
javax.validation.constraints.Null.message=必须为Null
javax.validation.constraints.pass.message=必须在过去
javax.validation.constraints.Pattern.message=必须匹配“{regexp}”
javax.validation.constraints.Size.message=大小必须介于{min}和{max}之间
org.hibernate.validator.constraints.CreditCardNumber.message=无效的信用卡号
org.hibernate.validator.constraints.EAN.message=无效的{type}条形码
org.hibernate.validator.constraints.Email.message=格式不正确的电子邮件地址
org.hibernate.validator.constraints.Length.message=长度必须介于{min}和{max}之间
org.hibernate.validator.constraints.LuhnCheck.message=${validatedValue}的校验位无效,Luhn模10校验和失败
org.hibernate.validator.constraints.Mod10Check.message=${validatedValue}的校验位无效,模10校验和失败
org.hibernate.validator.constraints.Mod11Check.message=${validatedValue}的校验位无效,模11校验和失败
org.hibernate.validator.constraints.ModCheck.message=${validatedValue}的检查数字无效,${modType}校验和失败
org.hibernate.validator.constraints.NotBlank.message=此字段为必填字段
org.hibernate.validator.constraints.NotEmpty.message=不能为空
org.hibernate.validator.constraints.parameterscriptasert.message=脚本表达式“{script}”的计算结果未为true
org.hibernate.validator.constraints.Range.message=必须介于{min}和{max}之间
org.hibernate.validator.constraints.SafeHtml.message=可能包含不安全的html内容
org.hibernate.validator.constraints.ScriptAssert.message=脚本表达式“{script}”的计算结果不是true
org.hibernate.validator.constraints.URL.message=必须是有效的URL
org.hibernate.validator.constraints.br.CNPJ.message=无效的巴西公司纳税人注册号(CNPJ)
org.hibernate.validator.constraints.br.CPF.message=无效的巴西个人纳税人注册号(CPF)
org.hibernate.validator.constraints.br.TituloEleitoral.message=无效的巴西选民ID卡号
com.diet4you.LE.Name.message=Tylko litery
com.diet4you.LE.Email.message=Nie格式电子邮件
com.diet4you.LE.Phone.message=InNie格式数字

由于您已在实体类“联系人”中设置了字段名称、电子邮件、电话、主题、消息的验证,请检查您是否正在表单中传递所有这些值。如果未按照实体类传递值,Spring将无法绑定在方法processContact中传递的Contact对象,并引发BeanPropertyBindingResult错误。

BindingResult需要紧跟在bean之后:

试着从

 @PostMapping("/contact")
    public String processContact(@Validated Contact contact, RedirectAttributes model, BindingResult bindingResult)


我添加了验证属性您的前端是什么(JSP、Thymeleaf、freemaker等等
@PostMapping("/contact")
    public String processContact(@Validated Contact contact, BindingResult bindingResult, RedirectAttributes model)